From 6f5180e51246cf1fd2fdccfa2a7b780a63ebf242 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Sat, 10 Apr 2021 12:59:31 +0200 Subject: [PATCH] Reduce number of requests in user search specs We were adding a `visit` in a `before` block but then we started the search tests with another `visit`. We also created records in the database in between, which increased the risk of database inconsistency since the process running the browser had already been started. --- spec/system/admin/administrators_spec.rb | 13 +++++++++---- spec/system/admin/managers_spec.rb | 10 ++++++---- spec/system/admin/moderators_spec.rb | 10 ++++++---- spec/system/admin/sdg/managers_spec.rb | 11 +++++++---- spec/system/admin/users_spec.rb | 11 +++++++---- spec/system/admin/valuators_spec.rb | 8 ++++++-- 6 files changed, 41 insertions(+), 22 deletions(-) diff --git a/spec/system/admin/administrators_spec.rb b/spec/system/admin/administrators_spec.rb index 32d27ce37..9c0405ef8 100644 --- a/spec/system/admin/administrators_spec.rb +++ b/spec/system/admin/administrators_spec.rb @@ -5,12 +5,11 @@ describe "Admin administrators" do let!(:user) { create(:user, username: "Jose Luis Balbin") } let!(:user_administrator) { create(:administrator, description: "admin_alias") } - before do - login_as(admin.user) - visit admin_administrators_path - end + before { login_as(admin.user) } scenario "Index" do + visit admin_administrators_path + expect(page).to have_content user_administrator.id expect(page).to have_content user_administrator.name expect(page).to have_content user_administrator.email @@ -19,6 +18,8 @@ describe "Admin administrators" do end scenario "Create Administrator" do + visit admin_administrators_path + fill_in "search", with: user.email click_button "Search" @@ -30,6 +31,8 @@ describe "Admin administrators" do end scenario "Delete Administrator" do + visit admin_administrators_path + within "#administrator_#{user_administrator.id}" do accept_confirm { click_link "Delete" } end @@ -40,6 +43,8 @@ describe "Admin administrators" do end scenario "Delete Administrator when its the current user" do + visit admin_administrators_path + within "#administrator_#{admin.id}" do accept_confirm { click_link "Delete" } end diff --git a/spec/system/admin/managers_spec.rb b/spec/system/admin/managers_spec.rb index 8178187f0..acf3de906 100644 --- a/spec/system/admin/managers_spec.rb +++ b/spec/system/admin/managers_spec.rb @@ -4,17 +4,17 @@ describe "Admin managers", :admin do let!(:user) { create(:user) } let!(:manager) { create(:manager) } - before do - visit admin_managers_path - end - scenario "Index" do + visit admin_managers_path + expect(page).to have_content manager.name expect(page).to have_content manager.email expect(page).not_to have_content user.name end scenario "Create Manager" do + visit admin_managers_path + fill_in "search", with: user.email click_button "Search" @@ -26,6 +26,8 @@ describe "Admin managers", :admin do end scenario "Delete Manager" do + visit admin_managers_path + accept_confirm { click_link "Delete" } within("#managers") do diff --git a/spec/system/admin/moderators_spec.rb b/spec/system/admin/moderators_spec.rb index b9946d29b..8fd62b350 100644 --- a/spec/system/admin/moderators_spec.rb +++ b/spec/system/admin/moderators_spec.rb @@ -4,17 +4,17 @@ describe "Admin moderators", :admin do let!(:user) { create(:user, username: "Jose Luis Balbin") } let!(:moderator) { create(:moderator) } - before do - visit admin_moderators_path - end - scenario "Index" do + visit admin_moderators_path + expect(page).to have_content moderator.name expect(page).to have_content moderator.email expect(page).not_to have_content user.name end scenario "Create Moderator" do + visit admin_moderators_path + fill_in "search", with: user.email click_button "Search" @@ -26,6 +26,8 @@ describe "Admin moderators", :admin do end scenario "Delete Moderator" do + visit admin_moderators_path + accept_confirm { click_link "Delete" } within("#moderators") do diff --git a/spec/system/admin/sdg/managers_spec.rb b/spec/system/admin/sdg/managers_spec.rb index 3830b259a..9de821268 100644 --- a/spec/system/admin/sdg/managers_spec.rb +++ b/spec/system/admin/sdg/managers_spec.rb @@ -4,18 +4,19 @@ describe "Admin SDG managers" do let!(:user) { create(:user) } let!(:sdg_manager) { create(:sdg_manager) } - before do - login_as(create(:administrator).user) - visit admin_sdg_managers_path - end + before { login_as(create(:administrator).user) } scenario "Index" do + visit admin_sdg_managers_path + expect(page).to have_content sdg_manager.name expect(page).to have_content sdg_manager.email expect(page).not_to have_content user.name end scenario "Create SDG Manager" do + visit admin_sdg_managers_path + fill_in "search", with: user.email click_button "Search" @@ -29,6 +30,8 @@ describe "Admin SDG managers" do end scenario "Delete SDG Manager" do + visit admin_sdg_managers_path + accept_confirm { click_link "Delete" } within("#sdg_managers") do diff --git a/spec/system/admin/users_spec.rb b/spec/system/admin/users_spec.rb index 5024a98d9..a63b8fda0 100644 --- a/spec/system/admin/users_spec.rb +++ b/spec/system/admin/users_spec.rb @@ -4,12 +4,11 @@ describe "Admin users" do let(:admin) { create(:administrator) } let!(:user) { create(:user, username: "Jose Luis Balbin") } - before do - login_as(admin.user) - visit admin_users_path - end + before { login_as(admin.user) } scenario "Index" do + visit admin_users_path + expect(page).to have_link user.name expect(page).to have_content user.email expect(page).to have_content admin.name @@ -17,6 +16,8 @@ describe "Admin users" do end scenario "The username links to their public profile" do + visit admin_users_path + within_window(window_opened_by { click_link user.name }) do expect(page).to have_current_path(user_path(user)) end @@ -45,6 +46,8 @@ describe "Admin users" do end scenario "Search" do + visit admin_users_path + fill_in :search, with: "Luis" click_button "Search" diff --git a/spec/system/admin/valuators_spec.rb b/spec/system/admin/valuators_spec.rb index 023db8a2f..fd218360d 100644 --- a/spec/system/admin/valuators_spec.rb +++ b/spec/system/admin/valuators_spec.rb @@ -4,8 +4,6 @@ describe "Admin valuators", :admin do let!(:user) { create(:user, username: "Jose Luis Balbin") } let!(:valuator) { create(:valuator, description: "Very reliable") } - before { visit admin_valuators_path } - scenario "Show" do visit admin_valuator_path(valuator) @@ -16,12 +14,16 @@ describe "Admin valuators", :admin do end scenario "Index" do + visit admin_valuators_path + expect(page).to have_content(valuator.name) expect(page).to have_content(valuator.email) expect(page).not_to have_content(user.name) end scenario "Create" do + visit admin_valuators_path + fill_in "search", with: user.email click_button "Search" @@ -51,6 +53,8 @@ describe "Admin valuators", :admin do end scenario "Destroy" do + visit admin_valuators_path + accept_confirm { click_link "Delete" } within("#valuators") do