Этот коммит содержится в:
Mattia Roccoberton
2025-04-13 22:55:53 +02:00
родитель 5196a8811a
Коммит 3617aab7f2
4 изменённых файлов: 67 добавлений и 6 удалений

Просмотреть файл

@@ -48,6 +48,7 @@ gem 'cuprite'
gem 'rspec_junit_formatter'
gem 'rspec-rails'
gem 'simplecov', require: false
gem 'super_diff'
# Linters
gem 'fasterer'

Просмотреть файл

@@ -16,6 +16,11 @@ module Shared
@content_element ||= find("#{selector} .ql-editor")
end
def open_dropdown(dropdown)
find("#{toolbar_selector} .ql-#{dropdown} .ql-picker-label").click
self
end
def toggle_bold
find("#{toolbar_selector} button.ql-bold").click
end
@@ -31,5 +36,29 @@ module Shared
def toggle_link
find("#{toolbar_selector} button.ql-link").click
end
def toggle_blockquote
find("#{toolbar_selector} button.ql-blockquote").click
end
def toggle_code_block
find("#{toolbar_selector} button.ql-code-block").click
end
def toggle_sub
find("#{toolbar_selector} button.ql-script[value='sub']").click
end
def toggle_super
find("#{toolbar_selector} button.ql-script[value='super']").click
end
def toggle_align_right
find("#{toolbar_selector} .ql-picker-item[data-value='right']").click
end
def tooltip_editing
find("#{editor_selector} .ql-tooltip.ql-editing")
end
end
end

Просмотреть файл

@@ -1,12 +1,14 @@
# frozen_string_literal: true
require_relative 'spec_helper'
require 'super_diff/rspec'
require 'zeitwerk'
loader = Zeitwerk::Loader.new
loader.push_dir("#{__dir__}/page_objects")
loader.setup
require_relative 'spec_helper'
ENV['RAILS_ENV'] = 'test'
require 'simplecov'
@@ -21,8 +23,6 @@ require 'capybara/rails'
Dir[File.expand_path('support/**/*.rb', __dir__)].each { |f| require_relative f }
# Checks for pending migrations and applies them before tests are run.
# If you are not using ActiveRecord, you can remove these lines.
begin
ActiveRecord::Migration.maintain_test_schema!
rescue ActiveRecord::PendingMigrationError => e

Просмотреть файл

@@ -29,17 +29,48 @@ RSpec.describe 'Quill editor' do
end
it 'edits some content using the editor' do
editor << :return << 'More content'
editor.select_all
editor.toggle_link
editor.tooltip_editing.send_keys(["https://blocknot.es", :return])
editor << :right << :return << 'More content'
editor.toggle_bold
editor << 'Some bold'
editor.toggle_italic
editor << 'Some italic'
editor.toggle_underline
editor << 'Some underline'
editor << 'Some underline' << :return
editor.toggle_blockquote
editor << 'blockquote enabled' << :return
editor.toggle_blockquote
editor.toggle_code_block
editor << 'code block enabled' << :return
editor.toggle_code_block
editor << "Some text"
editor.toggle_sub
editor << "sub text"
editor.toggle_sub
editor << " More text"
editor.toggle_super
editor << "sup text"
editor.toggle_super
editor << :return
editor.open_dropdown(:align).toggle_align_right
editor << "Text aligned on the right"
expect(editor.content).to eq <<~HTML.clean_multiline
<p>Some content</p>
<p><a href="https://blocknot.es" rel="noopener noreferrer" target="_blank">Some content</a></p>
<p>More content<strong>Some bold<em>Some italic<u>Some underline</u></em></strong></p>
<blockquote>blockquote enabled</blockquote>
<div class="ql-code-block-container" spellcheck="false">
<div class="ql-code-block">code block enabled</div>
</div>
<p>Some text<sub>sub text</sub> More text<sup>sup text</sup></p>
<p class="ql-align-right">Text aligned on the right</p>
HTML
end