From a3204ed60e2f25e5231ddf8e18e4124b157e8ee4 Mon Sep 17 00:00:00 2001 From: Anita Graham Date: Thu, 7 May 2015 21:51:15 +0800 Subject: Use find/trigger(:click) instead of click_link --- spec/features/refinery/blog/admin/posts_spec.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'spec/features/refinery/blog/admin') diff --git a/spec/features/refinery/blog/admin/posts_spec.rb b/spec/features/refinery/blog/admin/posts_spec.rb index 2c7b82c..99ec25d 100644 --- a/spec/features/refinery/blog/admin/posts_spec.rb +++ b/spec/features/refinery/blog/admin/posts_spec.rb @@ -33,7 +33,7 @@ module Refinery end it "should have category title", :js => true do - click_link "toggle_advanced_options" + find('#toggle_advanced_options').click expect(page).to have_content(blog_category.title) end @@ -45,14 +45,14 @@ module Refinery # this is a dirty hack but textarea that needs to be filled is # hidden and capybara refuses to fill in elements it can't see page.evaluate_script("WYMeditor.INSTANCES[0].html('

And I love it

')") - click_link "toggle_advanced_options" - sleep 1 + find('#toggle_advanced_options').click expect(page).to have_css '.blog_categories' expect(page).to have_css "#post_category_ids_#{blog_category.id}" expect(page).to have_selector("#post_category_ids_#{blog_category.id}:not(:checked)") check blog_category.title expect(page).to have_selector("#post_category_ids_#{blog_category.id}:checked") click_button "Save" + sleep 1 expect(page).to have_content("was successfully added.") end @@ -170,7 +170,7 @@ module Refinery # hidden and capybara refuses to fill in elements it can't see page.evaluate_script("WYMeditor.INSTANCES[0].html('

I totally did not write it.

')") - click_link "toggle_advanced_options" + find('a', text: 'Toggle Advanced Options').trigger(:click) expect(page).to have_content("Author") select other_guy.username, :from => "Author" -- cgit v1.2.3 From 99cdd519b209e05a6ed9ab81f23d22bd11b2490f Mon Sep 17 00:00:00 2001 From: Anita Graham Date: Tue, 19 May 2015 12:25:33 +0800 Subject: Use find(id).trigger(:click) to find elements with before:: css --- spec/features/refinery/blog/admin/posts_spec.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'spec/features/refinery/blog/admin') diff --git a/spec/features/refinery/blog/admin/posts_spec.rb b/spec/features/refinery/blog/admin/posts_spec.rb index 99ec25d..9ab35c7 100644 --- a/spec/features/refinery/blog/admin/posts_spec.rb +++ b/spec/features/refinery/blog/admin/posts_spec.rb @@ -33,7 +33,7 @@ module Refinery end it "should have category title", :js => true do - find('#toggle_advanced_options').click + find('#toggle_advanced_options').trigger(:click) expect(page).to have_content(blog_category.title) end @@ -45,7 +45,7 @@ module Refinery # this is a dirty hack but textarea that needs to be filled is # hidden and capybara refuses to fill in elements it can't see page.evaluate_script("WYMeditor.INSTANCES[0].html('

And I love it

')") - find('#toggle_advanced_options').click + find('#toggle_advanced_options').trigger(:click) expect(page).to have_css '.blog_categories' expect(page).to have_css "#post_category_ids_#{blog_category.id}" expect(page).to have_selector("#post_category_ids_#{blog_category.id}:not(:checked)") @@ -166,11 +166,11 @@ module Refinery click_link "Create new post" fill_in "post_title", :with => "This is some other guy's blog post" - # this is a dpage_titleirty hack but textarea that needs to be filled is + # this is a dirty hack but textarea that needs to be filled is # hidden and capybara refuses to fill in elements it can't see page.evaluate_script("WYMeditor.INSTANCES[0].html('

I totally did not write it.

')") - find('a', text: 'Toggle Advanced Options').trigger(:click) + find("#toggle_advanced_options").trigger(:click) expect(page).to have_content("Author") select other_guy.username, :from => "Author" -- cgit v1.2.3 From de954c625840adb7c1e98f1c675e56bb5e3074d7 Mon Sep 17 00:00:00 2001 From: Philip Arndt Date: Wed, 20 May 2015 12:05:03 +1200 Subject: remove JS from tests for reliability and dramatic speed increase. --- spec/features/refinery/blog/admin/posts_spec.rb | 32 ++++++++++--------------- 1 file changed, 12 insertions(+), 20 deletions(-) (limited to 'spec/features/refinery/blog/admin') diff --git a/spec/features/refinery/blog/admin/posts_spec.rb b/spec/features/refinery/blog/admin/posts_spec.rb index 9ab35c7..0efbb1d 100644 --- a/spec/features/refinery/blog/admin/posts_spec.rb +++ b/spec/features/refinery/blog/admin/posts_spec.rb @@ -32,27 +32,24 @@ module Refinery expect(page).to have_content("Tags") end - it "should have category title", :js => true do - find('#toggle_advanced_options').trigger(:click) + it "should have category title" do expect(page).to have_content(blog_category.title) end - describe "create blog post", :js => true do + describe "create blog post" do before do expect(subject.class.count).to eq(0) fill_in "post_title", :with => "This is my blog post" + fill_in "post_body", with: "

And I love it

" - # this is a dirty hack but textarea that needs to be filled is - # hidden and capybara refuses to fill in elements it can't see - page.evaluate_script("WYMeditor.INSTANCES[0].html('

And I love it

')") - find('#toggle_advanced_options').trigger(:click) expect(page).to have_css '.blog_categories' expect(page).to have_css "#post_category_ids_#{blog_category.id}" - expect(page).to have_selector("#post_category_ids_#{blog_category.id}:not(:checked)") - check blog_category.title - expect(page).to have_selector("#post_category_ids_#{blog_category.id}:checked") + expect { check(blog_category.title) }.to change { + !!page.find("#post_category_ids_#{blog_category.id}").checked? + }.from(false).to(true) + click_button "Save" - sleep 1 + expect(page).to have_content("was successfully added.") end @@ -70,13 +67,11 @@ module Refinery end end - describe "create blog post with tags", :js => true do + describe "create blog post with tags" do let(:tag_list) { "chicago, bikes, beers, babes" } before do fill_in "Title", :with => "This is a tagged blog post" - # this is a dirty hack but textarea that needs to be filled is - # hidden and capybara refuses to fill in elements it can't see - page.evaluate_script("WYMeditor.INSTANCES[0].html('

And I also love it

')") + fill_in "post_body", with: "

And I also love it

" fill_in "Tags", :with => tag_list click_button "Save" end @@ -160,17 +155,14 @@ module Refinery context "with multiple users" do let!(:other_guy) { FactoryGirl.create(:refinery_user, :username => "Other Guy") } - describe "create blog post with alternate author", :js => true do + describe "create blog post with alternate author" do before do visit refinery.blog_admin_posts_path click_link "Create new post" fill_in "post_title", :with => "This is some other guy's blog post" - # this is a dirty hack but textarea that needs to be filled is - # hidden and capybara refuses to fill in elements it can't see - page.evaluate_script("WYMeditor.INSTANCES[0].html('

I totally did not write it.

')") + fill_in "post_body", with: "

I totally did not write it.

" - find("#toggle_advanced_options").trigger(:click) expect(page).to have_content("Author") select other_guy.username, :from => "Author" -- cgit v1.2.3