diff options
author | George Claghorn <george@basecamp.com> | 2019-05-19 01:54:08 -0400 |
---|---|---|
committer | George Claghorn <george@basecamp.com> | 2019-05-19 01:55:53 -0400 |
commit | 339be65d669c83fd4c64541a9e82086dc5e64682 (patch) | |
tree | 63dd1e3b1d16958cbc0ccd66c64a245b5b95b173 /actiontext | |
parent | a0b102999afeec902ac45d1dcaeffcfa6c2ff2a0 (diff) | |
download | rails-339be65d669c83fd4c64541a9e82086dc5e64682.tar.gz rails-339be65d669c83fd4c64541a9e82086dc5e64682.tar.bz2 rails-339be65d669c83fd4c64541a9e82086dc5e64682.zip |
Allow filling in the only rich-text area without a locator
Diffstat (limited to 'actiontext')
-rw-r--r-- | actiontext/lib/action_text/system_test_helper.rb | 18 | ||||
-rw-r--r-- | actiontext/test/system/system_test_helper_test.rb | 6 |
2 files changed, 17 insertions, 7 deletions
diff --git a/actiontext/lib/action_text/system_test_helper.rb b/actiontext/lib/action_text/system_test_helper.rb index 7b01c4f0b7..77fc9eb50b 100644 --- a/actiontext/lib/action_text/system_test_helper.rb +++ b/actiontext/lib/action_text/system_test_helper.rb @@ -24,7 +24,7 @@ module ActionText # # <input id="trix_input_1" name="message[content]" type="hidden"> # # <trix-editor input="trix_input_1"></trix-editor> # fill_in_rich_text_area "message[content]", with: "Hello <em>world!</em>" - def fill_in_rich_text_area(locator, with:) + def fill_in_rich_text_area(locator = nil, with:) find(:rich_text_area, locator).execute_script("this.editor.loadHTML(arguments[0])", with.to_s) end end @@ -33,12 +33,16 @@ end Capybara.add_selector :rich_text_area do label "rich-text area" xpath do |locator| - input_located_by_name = XPath.anywhere(:input).where(XPath.attr(:name) == locator).attr(:id) + if locator.nil? + XPath.descendant(:"trix-editor") + else + input_located_by_name = XPath.anywhere(:input).where(XPath.attr(:name) == locator).attr(:id) - XPath.descendant(:"trix-editor").where \ - XPath.attr(:id).equals(locator) | - XPath.attr(:placeholder).equals(locator) | - XPath.attr(:"aria-label").equals(locator) | - XPath.attr(:input).equals(input_located_by_name) + XPath.descendant(:"trix-editor").where \ + XPath.attr(:id).equals(locator) | + XPath.attr(:placeholder).equals(locator) | + XPath.attr(:"aria-label").equals(locator) | + XPath.attr(:input).equals(input_located_by_name) + end end end diff --git a/actiontext/test/system/system_test_helper_test.rb b/actiontext/test/system/system_test_helper_test.rb index b00bbafa74..460769c480 100644 --- a/actiontext/test/system/system_test_helper_test.rb +++ b/actiontext/test/system/system_test_helper_test.rb @@ -30,4 +30,10 @@ class ActionText::SystemTestHelperTest < ApplicationSystemTestCase fill_in_rich_text_area "message[content]", with: "Hello world!" assert_selector :field, "message[content]", with: /Hello world!/, type: "hidden" end + + test "filling in the first rich-text area" do + visit new_message_url + fill_in_rich_text_area with: "Hello world!" + assert_selector :field, "message[content]", with: /Hello world!/, type: "hidden" + end end |