From 1ebfa0457874e4ae24ff75d40d2c091e89dd3d7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Sun, 29 Sep 2019 15:58:54 +0200 Subject: [PATCH] Check texts from the user's point of view This way we also simplify the code by avoiding instance variables. --- spec/features/admin/settings_spec.rb | 20 ++++++++------- spec/features/debates_spec.rb | 37 ++++++++++++++-------------- spec/features/proposals_spec.rb | 37 ++++++++++++++-------------- 3 files changed, 49 insertions(+), 45 deletions(-) diff --git a/spec/features/admin/settings_spec.rb b/spec/features/admin/settings_spec.rb index a15315994..f4382fc44 100644 --- a/spec/features/admin/settings_spec.rb +++ b/spec/features/admin/settings_spec.rb @@ -1,27 +1,29 @@ require "rails_helper" describe "Admin settings" do - before do - @setting1 = create(:setting) - @setting2 = create(:setting) - @setting3 = create(:setting) login_as(create(:administrator).user) end scenario "Index" do + create(:setting, key: "super.users.first") + create(:setting, key: "super.users.second") + create(:setting, key: "super.users.third") + visit admin_settings_path - expect(page).to have_content @setting1.key - expect(page).to have_content @setting2.key - expect(page).to have_content @setting3.key + expect(page).to have_content "First" + expect(page).to have_content "Second" + expect(page).to have_content "Third" end scenario "Update" do + setting = create(:setting, key: "super.users.first") + visit admin_settings_path - within("#edit_setting_#{@setting2.id}") do - fill_in "setting_#{@setting2.id}", with: "Super Users of level 2" + within("#edit_setting_#{setting.id}") do + fill_in "setting_#{setting.id}", with: "Super Users of level 1" click_button "Update" end diff --git a/spec/features/debates_spec.rb b/spec/features/debates_spec.rb index 6478e3cbf..43ccafc59 100644 --- a/spec/features/debates_spec.rb +++ b/spec/features/debates_spec.rb @@ -1017,16 +1017,14 @@ describe "Debates" do end context "Filter" do - context "By geozone" do + let(:california) { Geozone.create(name: "California") } + let(:new_york) { Geozone.create(name: "New York") } before do - @california = Geozone.create(name: "California") - @new_york = Geozone.create(name: "New York") - - @debate1 = create(:debate, geozone: @california) - @debate2 = create(:debate, geozone: @california) - @debate3 = create(:debate, geozone: @new_york) + create(:debate, geozone: california, title: "Bigger sequoias") + create(:debate, geozone: california, title: "Green beach") + create(:debate, geozone: new_york, title: "Sully monument") end pending "From map" do @@ -1040,9 +1038,9 @@ describe "Debates" do within("#debates") do expect(page).to have_css(".debate", count: 2) - expect(page).to have_content(@debate1.title) - expect(page).to have_content(@debate2.title) - expect(page).not_to have_content(@debate3.title) + expect(page).to have_content("Bigger sequoias") + expect(page).to have_content("Green beach") + expect(page).not_to have_content("Sully monument") end end @@ -1055,24 +1053,27 @@ describe "Debates" do end within("#debates") do expect(page).to have_css(".debate", count: 2) - expect(page).to have_content(@debate1.title) - expect(page).to have_content(@debate2.title) - expect(page).not_to have_content(@debate3.title) + expect(page).to have_content("Bigger sequoias") + expect(page).to have_content("Green beach") + expect(page).not_to have_content("Sully monument") end end pending "From debate" do - visit debate_path(@debate1) + debate = create(:debate, geozone: california, title: "Surf college") + + visit debate_path(debate) within("#geozone") do click_link "California" end within("#debates") do - expect(page).to have_css(".debate", count: 2) - expect(page).to have_content(@debate1.title) - expect(page).to have_content(@debate2.title) - expect(page).not_to have_content(@debate3.title) + expect(page).to have_css(".debate", count: 3) + expect(page).to have_content("Surf college") + expect(page).to have_content("Bigger sequoias") + expect(page).to have_content("Green beach") + expect(page).not_to have_content("Sully monument") end end diff --git a/spec/features/proposals_spec.rb b/spec/features/proposals_spec.rb index 8ac6a5bc2..b4b6e0cfa 100644 --- a/spec/features/proposals_spec.rb +++ b/spec/features/proposals_spec.rb @@ -1654,16 +1654,14 @@ describe "Proposals" do end context "Filter" do - context "By geozone" do + let(:california) { Geozone.create(name: "California") } + let(:new_york) { Geozone.create(name: "New York") } before do - @california = Geozone.create(name: "California") - @new_york = Geozone.create(name: "New York") - - @proposal1 = create(:proposal, geozone: @california) - @proposal2 = create(:proposal, geozone: @california) - @proposal3 = create(:proposal, geozone: @new_york) + create(:proposal, geozone: california, title: "Bigger sequoias") + create(:proposal, geozone: california, title: "Green beach") + create(:proposal, geozone: new_york, title: "Sully monument") end scenario "From map" do @@ -1677,9 +1675,9 @@ describe "Proposals" do within("#proposals") do expect(page).to have_css(".proposal", count: 2) - expect(page).to have_content(@proposal1.title) - expect(page).to have_content(@proposal2.title) - expect(page).not_to have_content(@proposal3.title) + expect(page).to have_content("Bigger sequoias") + expect(page).to have_content("Green beach") + expect(page).not_to have_content("Sully monument") end end @@ -1692,24 +1690,27 @@ describe "Proposals" do end within("#proposals") do expect(page).to have_css(".proposal", count: 2) - expect(page).to have_content(@proposal1.title) - expect(page).to have_content(@proposal2.title) - expect(page).not_to have_content(@proposal3.title) + expect(page).to have_content("Bigger sequoias") + expect(page).to have_content("Green beach") + expect(page).not_to have_content("Sully monument") end end scenario "From proposal" do - visit proposal_path(@proposal1) + proposal = create(:proposal, geozone: california, title: "Surf college") + + visit proposal_path(proposal) within("#geozone") do click_link "California" end within("#proposals") do - expect(page).to have_css(".proposal", count: 2) - expect(page).to have_content(@proposal1.title) - expect(page).to have_content(@proposal2.title) - expect(page).not_to have_content(@proposal3.title) + expect(page).to have_css(".proposal", count: 3) + expect(page).to have_content("Surf college") + expect(page).to have_content("Bigger sequoias") + expect(page).to have_content("Green beach") + expect(page).not_to have_content("Sully monument") end end