Skip to content

Commit 3617aab

Browse files
committed
test: Improve some tests
1 parent 5196a88 commit 3617aab

File tree

4 files changed

+67
-6
lines changed

4 files changed

+67
-6
lines changed

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ gem 'cuprite'
4848
gem 'rspec_junit_formatter'
4949
gem 'rspec-rails'
5050
gem 'simplecov', require: false
51+
gem 'super_diff'
5152

5253
# Linters
5354
gem 'fasterer'

spec/page_objects/shared/quill_editor.rb

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ def content_element
1616
@content_element ||= find("#{selector} .ql-editor")
1717
end
1818

19+
def open_dropdown(dropdown)
20+
find("#{toolbar_selector} .ql-#{dropdown} .ql-picker-label").click
21+
self
22+
end
23+
1924
def toggle_bold
2025
find("#{toolbar_selector} button.ql-bold").click
2126
end
@@ -31,5 +36,29 @@ def toggle_underline
3136
def toggle_link
3237
find("#{toolbar_selector} button.ql-link").click
3338
end
39+
40+
def toggle_blockquote
41+
find("#{toolbar_selector} button.ql-blockquote").click
42+
end
43+
44+
def toggle_code_block
45+
find("#{toolbar_selector} button.ql-code-block").click
46+
end
47+
48+
def toggle_sub
49+
find("#{toolbar_selector} button.ql-script[value='sub']").click
50+
end
51+
52+
def toggle_super
53+
find("#{toolbar_selector} button.ql-script[value='super']").click
54+
end
55+
56+
def toggle_align_right
57+
find("#{toolbar_selector} .ql-picker-item[data-value='right']").click
58+
end
59+
60+
def tooltip_editing
61+
find("#{editor_selector} .ql-tooltip.ql-editing")
62+
end
3463
end
3564
end

spec/rails_helper.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
# frozen_string_literal: true
22

3-
require_relative 'spec_helper'
3+
require 'super_diff/rspec'
44

55
require 'zeitwerk'
66
loader = Zeitwerk::Loader.new
77
loader.push_dir("#{__dir__}/page_objects")
88
loader.setup
99

10+
require_relative 'spec_helper'
11+
1012
ENV['RAILS_ENV'] = 'test'
1113

1214
require 'simplecov'
@@ -21,8 +23,6 @@
2123

2224
Dir[File.expand_path('support/**/*.rb', __dir__)].each { |f| require_relative f }
2325

24-
# Checks for pending migrations and applies them before tests are run.
25-
# If you are not using ActiveRecord, you can remove these lines.
2626
begin
2727
ActiveRecord::Migration.maintain_test_schema!
2828
rescue ActiveRecord::PendingMigrationError => e

spec/system/quill_editor_spec.rb

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,48 @@
2929
end
3030

3131
it 'edits some content using the editor' do
32-
editor << :return << 'More content'
32+
editor.select_all
33+
editor.toggle_link
34+
editor.tooltip_editing.send_keys(["https://blocknot.es", :return])
35+
36+
editor << :right << :return << 'More content'
3337
editor.toggle_bold
3438
editor << 'Some bold'
3539
editor.toggle_italic
3640
editor << 'Some italic'
3741
editor.toggle_underline
38-
editor << 'Some underline'
42+
editor << 'Some underline' << :return
43+
44+
editor.toggle_blockquote
45+
editor << 'blockquote enabled' << :return
46+
editor.toggle_blockquote
47+
48+
editor.toggle_code_block
49+
editor << 'code block enabled' << :return
50+
editor.toggle_code_block
51+
52+
editor << "Some text"
53+
editor.toggle_sub
54+
editor << "sub text"
55+
editor.toggle_sub
56+
editor << " More text"
57+
editor.toggle_super
58+
editor << "sup text"
59+
editor.toggle_super
60+
editor << :return
61+
62+
editor.open_dropdown(:align).toggle_align_right
63+
editor << "Text aligned on the right"
3964

4065
expect(editor.content).to eq <<~HTML.clean_multiline
41-
<p>Some content</p>
66+
<p><a href="https://blocknot.es" rel="noopener noreferrer" target="_blank">Some content</a></p>
4267
<p>More content<strong>Some bold<em>Some italic<u>Some underline</u></em></strong></p>
68+
<blockquote>blockquote enabled</blockquote>
69+
<div class="ql-code-block-container" spellcheck="false">
70+
<div class="ql-code-block">code block enabled</div>
71+
</div>
72+
<p>Some text<sub>sub text</sub> More text<sup>sup text</sup></p>
73+
<p class="ql-align-right">Text aligned on the right</p>
4374
HTML
4475
end
4576

0 commit comments

Comments
 (0)