diff --git a/spec/shared/system/documentable.rb b/spec/shared/system/documentable.rb index c360859d8..5a85e243a 100644 --- a/spec/shared/system/documentable.rb +++ b/spec/shared/system/documentable.rb @@ -1,13 +1,10 @@ shared_examples "documentable" do |documentable_factory_name, documentable_path, documentable_path_arguments| - let(:administrator) { create(:user) } let(:user) { create(:user) } let(:arguments) { {} } let(:documentable) { create(documentable_factory_name, author: user) } let!(:document) { create(:document, documentable: documentable, user: documentable.author) } before do - create(:administrator, user: administrator) - documentable_path_arguments.each do |argument_name, path_to_value| arguments.merge!("#{argument_name}": documentable.send(path_to_value)) end @@ -46,8 +43,7 @@ shared_examples "documentable" do |documentable_factory_name, documentable_path, expect(page).to have_link("Delete document") end - scenario "Administrators cannot destroy documentables they have not authored" do - login_as(administrator) + scenario "Administrators cannot destroy documentables they have not authored", :admin do visit send(documentable_path, arguments) expect(page).not_to have_link("Delete document") diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 00b5c8c9e..7601d4216 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -70,6 +70,10 @@ RSpec.configure do |config| Bullet.end_request end + config.before(:each, :admin) do + login_as(create(:administrator).user) + end + config.before(:each, :delay_jobs) do Delayed::Worker.delay_jobs = true end diff --git a/spec/system/admin/admin_notifications_spec.rb b/spec/system/admin/admin_notifications_spec.rb index 6e8f69c9e..4932d5796 100644 --- a/spec/system/admin/admin_notifications_spec.rb +++ b/spec/system/admin/admin_notifications_spec.rb @@ -1,10 +1,7 @@ require "rails_helper" -describe "Admin Notifications" do - before do - create(:budget) - login_as(create(:administrator).user) - end +describe "Admin Notifications", :admin do + before { create(:budget) } context "Show" do scenario "Valid Admin Notification" do diff --git a/spec/system/admin/banners_spec.rb b/spec/system/admin/banners_spec.rb index 1cb53816d..cab045f7a 100644 --- a/spec/system/admin/banners_spec.rb +++ b/spec/system/admin/banners_spec.rb @@ -1,10 +1,6 @@ require "rails_helper" -describe "Admin banners magement" do - before do - login_as(create(:administrator).user) - end - +describe "Admin banners magement", :admin do context "Index" do before do create(:banner, title: "Banner number one", diff --git a/spec/system/admin/budget_groups_spec.rb b/spec/system/admin/budget_groups_spec.rb index 75c05e1b9..883badcf2 100644 --- a/spec/system/admin/budget_groups_spec.rb +++ b/spec/system/admin/budget_groups_spec.rb @@ -1,13 +1,8 @@ require "rails_helper" -describe "Admin budget groups" do +describe "Admin budget groups", :admin do let(:budget) { create(:budget, :drafting) } - before do - admin = create(:administrator) - login_as(admin.user) - end - context "Feature flag" do before do Setting["process.budgets"] = nil diff --git a/spec/system/admin/budget_headings_spec.rb b/spec/system/admin/budget_headings_spec.rb index 397b39968..39f6ee653 100644 --- a/spec/system/admin/budget_headings_spec.rb +++ b/spec/system/admin/budget_headings_spec.rb @@ -1,14 +1,9 @@ require "rails_helper" -describe "Admin budget headings" do +describe "Admin budget headings", :admin do let(:budget) { create(:budget, :drafting) } let(:group) { create(:budget_group, budget: budget) } - before do - admin = create(:administrator) - login_as(admin.user) - end - context "Feature flag" do before do Setting["process.budgets"] = nil diff --git a/spec/system/admin/budget_investments_spec.rb b/spec/system/admin/budget_investments_spec.rb index 165b15aea..5e4241bb6 100644 --- a/spec/system/admin/budget_investments_spec.rb +++ b/spec/system/admin/budget_investments_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe "Admin budget investments" do +describe "Admin budget investments", :admin do let(:budget) { create(:budget) } let(:administrator) do create(:administrator, user: create(:user, username: "Ana", email: "ana@admins.org")) @@ -10,10 +10,6 @@ describe "Admin budget investments" do :budget_investment, "admin_polymorphic_path" - before do - login_as(create(:administrator).user) - end - context "Feature flag" do before do Setting["process.budgets"] = nil diff --git a/spec/system/admin/budget_phases_spec.rb b/spec/system/admin/budget_phases_spec.rb index f1c6d33b7..96d8fc367 100644 --- a/spec/system/admin/budget_phases_spec.rb +++ b/spec/system/admin/budget_phases_spec.rb @@ -3,12 +3,7 @@ require "rails_helper" describe "Admin budget phases" do let(:budget) { create(:budget) } - context "Edit" do - before do - admin = create(:administrator) - login_as(admin.user) - end - + context "Edit", :admin do scenario "Update phase", :js do visit edit_admin_budget_budget_phase_path(budget, budget.current_phase) diff --git a/spec/system/admin/budgets_spec.rb b/spec/system/admin/budgets_spec.rb index 914c813c8..b7a9d90fe 100644 --- a/spec/system/admin/budgets_spec.rb +++ b/spec/system/admin/budgets_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin budgets" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin budgets", :admin do context "Feature flag" do before do Setting["process.budgets"] = nil diff --git a/spec/system/admin/comments_spec.rb b/spec/system/admin/comments_spec.rb index a22843a9a..78e47e2f0 100644 --- a/spec/system/admin/comments_spec.rb +++ b/spec/system/admin/comments_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin comments" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin comments", :admin do scenario "Index" do create(:comment, body: "Everything is awesome") diff --git a/spec/system/admin/dashboard/actions_spec.rb b/spec/system/admin/dashboard/actions_spec.rb index bae5c6005..71d73415e 100644 --- a/spec/system/admin/dashboard/actions_spec.rb +++ b/spec/system/admin/dashboard/actions_spec.rb @@ -1,12 +1,6 @@ require "rails_helper" -describe "Admin dashboard actions" do - let(:admin) { create :administrator } - - before do - login_as(admin.user) - end - +describe "Admin dashboard actions", :admin do it_behaves_like "nested documentable", "administrator", "dashboard_action", diff --git a/spec/system/admin/dashboard/administrator_tasks_spec.rb b/spec/system/admin/dashboard/administrator_tasks_spec.rb index b9178905e..68717b2b0 100644 --- a/spec/system/admin/dashboard/administrator_tasks_spec.rb +++ b/spec/system/admin/dashboard/administrator_tasks_spec.rb @@ -1,12 +1,6 @@ require "rails_helper" -describe "Admin administrator tasks" do - let(:admin) { create :administrator } - - before do - login_as(admin.user) - end - +describe "Admin administrator tasks", :admin do context "when visiting index" do context "and no pending tasks" do before do diff --git a/spec/system/admin/debates_spec.rb b/spec/system/admin/debates_spec.rb index c1df1a281..bb42b6dfa 100644 --- a/spec/system/admin/debates_spec.rb +++ b/spec/system/admin/debates_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin debates" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin debates", :admin do it_behaves_like "flaggable", :debate, admin: true scenario "Index" do diff --git a/spec/system/admin/emails/newsletters_spec.rb b/spec/system/admin/emails/newsletters_spec.rb index 070517bc0..7847293d7 100644 --- a/spec/system/admin/emails/newsletters_spec.rb +++ b/spec/system/admin/emails/newsletters_spec.rb @@ -1,9 +1,8 @@ require "rails_helper" -describe "Admin newsletter emails" do +describe "Admin newsletter emails", :admin do before do create(:budget) - login_as(create(:administrator).user) end context "Show" do diff --git a/spec/system/admin/feature_flags_spec.rb b/spec/system/admin/feature_flags_spec.rb index 76e478f3f..28636ed2d 100644 --- a/spec/system/admin/feature_flags_spec.rb +++ b/spec/system/admin/feature_flags_spec.rb @@ -1,9 +1,8 @@ require "rails_helper" -describe "Admin feature flags" do +describe "Admin feature flags", :admin do before do Setting["process.budgets"] = true - login_as(create(:administrator).user) end scenario "Enabled features are listed on menu" do diff --git a/spec/system/admin/geozones_spec.rb b/spec/system/admin/geozones_spec.rb index 621579ca2..0db7cacfa 100644 --- a/spec/system/admin/geozones_spec.rb +++ b/spec/system/admin/geozones_spec.rb @@ -1,10 +1,6 @@ require "rails_helper" -describe "Admin geozones" do - before do - login_as(create(:administrator).user) - end - +describe "Admin geozones", :admin do scenario "Show list of geozones" do chamberi = create(:geozone, name: "Chamberí") retiro = create(:geozone, name: "Retiro") diff --git a/spec/system/admin/hidden_budget_investments_spec.rb b/spec/system/admin/hidden_budget_investments_spec.rb index f03a517bd..b6f3c3c48 100644 --- a/spec/system/admin/hidden_budget_investments_spec.rb +++ b/spec/system/admin/hidden_budget_investments_spec.rb @@ -1,14 +1,9 @@ require "rails_helper" -describe "Admin hidden budget investments" do +describe "Admin hidden budget investments", :admin do let(:budget) { create(:budget) } let(:heading) { create(:budget_heading, budget: budget, price: 666666) } - before do - admin = create(:administrator) - login_as(admin.user) - end - scenario "Disabled with a feature flag" do Setting["process.budgets"] = nil diff --git a/spec/system/admin/hidden_comments_spec.rb b/spec/system/admin/hidden_comments_spec.rb index 92d28df1f..57a1adbc9 100644 --- a/spec/system/admin/hidden_comments_spec.rb +++ b/spec/system/admin/hidden_comments_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin hidden comments" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin hidden comments", :admin do scenario "Do not show comments from blocked users" do comment = create(:comment, :hidden, body: "SPAM from SPAMMER") proposal = create(:proposal, author: comment.author) diff --git a/spec/system/admin/hidden_debates_spec.rb b/spec/system/admin/hidden_debates_spec.rb index 3b4e55134..68c096497 100644 --- a/spec/system/admin/hidden_debates_spec.rb +++ b/spec/system/admin/hidden_debates_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin hidden debates" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin hidden debates", :admin do scenario "Disabled with a feature flag" do Setting["process.debates"] = nil diff --git a/spec/system/admin/hidden_proposals_spec.rb b/spec/system/admin/hidden_proposals_spec.rb index cbc25c52b..d6cf9411b 100644 --- a/spec/system/admin/hidden_proposals_spec.rb +++ b/spec/system/admin/hidden_proposals_spec.rb @@ -1,15 +1,8 @@ require "rails_helper" -describe "Admin hidden proposals" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin hidden proposals", :admin do scenario "Disabled with a feature flag" do Setting["process.proposals"] = nil - admin = create(:administrator) - login_as(admin.user) expect { visit admin_hidden_proposals_path }.to raise_exception(FeatureFlags::FeatureDisabled) end diff --git a/spec/system/admin/hidden_users_spec.rb b/spec/system/admin/hidden_users_spec.rb index 1a4480fb0..661578544 100644 --- a/spec/system/admin/hidden_users_spec.rb +++ b/spec/system/admin/hidden_users_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin hidden users" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin hidden users", :admin do scenario "Show user activity" do user = create(:user, :hidden) diff --git a/spec/system/admin/homepage/homepage_spec.rb b/spec/system/admin/homepage/homepage_spec.rb index 9a44cda7d..0e3eff79a 100644 --- a/spec/system/admin/homepage/homepage_spec.rb +++ b/spec/system/admin/homepage/homepage_spec.rb @@ -1,14 +1,11 @@ require "rails_helper" -describe "Homepage" do +describe "Homepage", :admin do before do Setting["homepage.widgets.feeds.proposals"] = false Setting["homepage.widgets.feeds.debates"] = false Setting["homepage.widgets.feeds.processes"] = false Setting["feature.user.recommendations"] = false - - admin = create(:administrator).user - login_as(admin) end let!(:proposals_feed) { create(:widget_feed, kind: "proposals") } diff --git a/spec/system/admin/legislation/draft_versions_spec.rb b/spec/system/admin/legislation/draft_versions_spec.rb index 9423fa55f..59d3192ca 100644 --- a/spec/system/admin/legislation/draft_versions_spec.rb +++ b/spec/system/admin/legislation/draft_versions_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin legislation draft versions" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin legislation draft versions", :admin do context "Feature flag" do scenario "Disabled with a feature flag" do Setting["process.legislation"] = nil diff --git a/spec/system/admin/legislation/processes_spec.rb b/spec/system/admin/legislation/processes_spec.rb index ce766faa0..5e69b60b0 100644 --- a/spec/system/admin/legislation/processes_spec.rb +++ b/spec/system/admin/legislation/processes_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin collaborative legislation" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin collaborative legislation", :admin do it_behaves_like "admin_milestoneable", :legislation_process, "admin_legislation_process_milestones_path" diff --git a/spec/system/admin/legislation/proposals_spec.rb b/spec/system/admin/legislation/proposals_spec.rb index fce0757d5..d1662f665 100644 --- a/spec/system/admin/legislation/proposals_spec.rb +++ b/spec/system/admin/legislation/proposals_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin collaborative legislation" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin collaborative legislation", :admin do context "Index" do scenario "Displaying legislation proposals" do proposal = create(:legislation_proposal, cached_votes_score: 10) diff --git a/spec/system/admin/legislation/questions_spec.rb b/spec/system/admin/legislation/questions_spec.rb index 3c70fed27..416d83512 100644 --- a/spec/system/admin/legislation/questions_spec.rb +++ b/spec/system/admin/legislation/questions_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin legislation questions" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin legislation questions", :admin do let!(:process) { create(:legislation_process, title: "An example legislation process") } context "Feature flag" do diff --git a/spec/system/admin/local_census_records/imports_spec.rb b/spec/system/admin/local_census_records/imports_spec.rb index 62e92c43d..29154ebbb 100644 --- a/spec/system/admin/local_census_records/imports_spec.rb +++ b/spec/system/admin/local_census_records/imports_spec.rb @@ -1,13 +1,8 @@ require "rails_helper" -describe "Imports" do +describe "Imports", :admin do let(:base_files_path) { %w[spec fixtures files local_census_records import] } - before do - admin = create(:administrator) - login_as(admin.user) - end - describe "New" do scenario "Should show import form" do visit new_admin_local_census_records_import_path diff --git a/spec/system/admin/local_census_records_spec.rb b/spec/system/admin/local_census_records_spec.rb index e326e2b92..a35f875fc 100644 --- a/spec/system/admin/local_census_records_spec.rb +++ b/spec/system/admin/local_census_records_spec.rb @@ -1,10 +1,6 @@ require "rails_helper" -describe "Admin local census records" do - before do - login_as(create(:administrator).user) - end - +describe "Admin local census records", :admin do context "Index" do let!(:local_census_record) { create(:local_census_record) } diff --git a/spec/system/admin/managers_spec.rb b/spec/system/admin/managers_spec.rb index d3b0b30cb..081152a46 100644 --- a/spec/system/admin/managers_spec.rb +++ b/spec/system/admin/managers_spec.rb @@ -1,11 +1,10 @@ require "rails_helper" -describe "Admin managers" do +describe "Admin managers", :admin do let!(:user) { create(:user) } let!(:manager) { create(:manager) } before do - login_as(create(:administrator).user) visit admin_managers_path end diff --git a/spec/system/admin/milestone_statuses_spec.rb b/spec/system/admin/milestone_statuses_spec.rb index 8f4540fe4..10d1b109e 100644 --- a/spec/system/admin/milestone_statuses_spec.rb +++ b/spec/system/admin/milestone_statuses_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin milestone statuses" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin milestone statuses", :admin do context "Index" do scenario "Displaying only not hidden statuses" do status1 = create(:milestone_status) diff --git a/spec/system/admin/moderators_spec.rb b/spec/system/admin/moderators_spec.rb index c3e24d800..8ae8c8e58 100644 --- a/spec/system/admin/moderators_spec.rb +++ b/spec/system/admin/moderators_spec.rb @@ -1,11 +1,10 @@ require "rails_helper" -describe "Admin moderators" do +describe "Admin moderators", :admin do let!(:user) { create(:user, username: "Jose Luis Balbin") } let!(:moderator) { create(:moderator) } before do - login_as(create(:administrator).user) visit admin_moderators_path end diff --git a/spec/system/admin/officials_spec.rb b/spec/system/admin/officials_spec.rb index a9eaab1f5..2b1e18331 100644 --- a/spec/system/admin/officials_spec.rb +++ b/spec/system/admin/officials_spec.rb @@ -1,13 +1,9 @@ require "rails_helper" -describe "Admin officials" do +describe "Admin officials", :admin do let!(:citizen) { create(:user, username: "Citizen Kane") } let!(:official) { create(:user, official_position: "Mayor", official_level: 5) } - before do - login_as(create(:administrator).user) - end - scenario "Index" do visit admin_officials_path diff --git a/spec/system/admin/poll/active_polls_spec.rb b/spec/system/admin/poll/active_polls_spec.rb index a2978f941..64ea97702 100644 --- a/spec/system/admin/poll/active_polls_spec.rb +++ b/spec/system/admin/poll/active_polls_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin Active polls" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin Active polls", :admin do scenario "Add", :js do expect(ActivePoll.first).to be nil diff --git a/spec/system/admin/poll/booth_assigments_spec.rb b/spec/system/admin/poll/booth_assigments_spec.rb index ebfb38695..e0c7e06ba 100644 --- a/spec/system/admin/poll/booth_assigments_spec.rb +++ b/spec/system/admin/poll/booth_assigments_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin booths assignments" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin booths assignments", :admin do describe "Admin Booth Assignment management" do let!(:poll) { create(:poll) } let!(:booth) { create(:poll_booth) } diff --git a/spec/system/admin/poll/booths_spec.rb b/spec/system/admin/poll/booths_spec.rb index 7e0c006f5..60599fc44 100644 --- a/spec/system/admin/poll/booths_spec.rb +++ b/spec/system/admin/poll/booths_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin booths" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin booths", :admin do scenario "Index empty" do visit admin_root_path diff --git a/spec/system/admin/poll/officer_assignments_spec.rb b/spec/system/admin/poll/officer_assignments_spec.rb index c9530fb66..df91b1241 100644 --- a/spec/system/admin/poll/officer_assignments_spec.rb +++ b/spec/system/admin/poll/officer_assignments_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Officer Assignments" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Officer Assignments", :admin do scenario "Index" do poll = create(:poll) diff --git a/spec/system/admin/poll/officers_spec.rb b/spec/system/admin/poll/officers_spec.rb index d714a540b..51d2fd506 100644 --- a/spec/system/admin/poll/officers_spec.rb +++ b/spec/system/admin/poll/officers_spec.rb @@ -1,11 +1,10 @@ require "rails_helper" -describe "Admin poll officers" do +describe "Admin poll officers", :admin do let!(:user) { create(:user, username: "Pedro Jose Garcia") } let!(:officer) { create(:poll_officer) } before do - login_as(create(:administrator).user) visit admin_officers_path end diff --git a/spec/system/admin/poll/polls_spec.rb b/spec/system/admin/poll/polls_spec.rb index d7a2fbc21..c60ade14b 100644 --- a/spec/system/admin/poll/polls_spec.rb +++ b/spec/system/admin/poll/polls_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin polls" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin polls", :admin do scenario "Disabled with a feature flag" do Setting["process.polls"] = nil expect { visit admin_polls_path }.to raise_exception(FeatureFlags::FeatureDisabled) diff --git a/spec/system/admin/poll/questions/answers/answers_spec.rb b/spec/system/admin/poll/questions/answers/answers_spec.rb index 395a1bed3..8b26fdb03 100644 --- a/spec/system/admin/poll/questions/answers/answers_spec.rb +++ b/spec/system/admin/poll/questions/answers/answers_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Answers" do - before do - admin = create(:administrator) - login_as admin.user - end - +describe "Answers", :admin do scenario "Create" do question = create(:poll_question) diff --git a/spec/system/admin/poll/questions/answers/documents/documents_spec.rb b/spec/system/admin/poll/questions/answers/documents/documents_spec.rb index c32569e7c..9fb2094c6 100644 --- a/spec/system/admin/poll/questions/answers/documents/documents_spec.rb +++ b/spec/system/admin/poll/questions/answers/documents/documents_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Documents" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Documents", :admin do context "Index" do scenario "Answer with no documents" do answer = create(:poll_question_answer) diff --git a/spec/system/admin/poll/questions/answers/images/images_spec.rb b/spec/system/admin/poll/questions/answers/images/images_spec.rb index 8469d6669..7536f50a6 100644 --- a/spec/system/admin/poll/questions/answers/images/images_spec.rb +++ b/spec/system/admin/poll/questions/answers/images/images_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Images" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Images", :admin do it_behaves_like "nested imageable", "poll_question_answer", "new_admin_answer_image_path", diff --git a/spec/system/admin/poll/questions/answers/videos/videos_spec.rb b/spec/system/admin/poll/questions/answers/videos/videos_spec.rb index 91a314c44..d3ced3080 100644 --- a/spec/system/admin/poll/questions/answers/videos/videos_spec.rb +++ b/spec/system/admin/poll/questions/answers/videos/videos_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Videos" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Videos", :admin do scenario "Create" do question = create(:poll_question) answer = create(:poll_question_answer, question: question) diff --git a/spec/system/admin/poll/questions_spec.rb b/spec/system/admin/poll/questions_spec.rb index 187549a64..d71b0fd95 100644 --- a/spec/system/admin/poll/questions_spec.rb +++ b/spec/system/admin/poll/questions_spec.rb @@ -1,10 +1,6 @@ require "rails_helper" -describe "Admin poll questions" do - before do - login_as(create(:administrator).user) - end - +describe "Admin poll questions", :admin do scenario "Index" do poll1 = create(:poll) poll2 = create(:poll) diff --git a/spec/system/admin/poll/shifts_spec.rb b/spec/system/admin/poll/shifts_spec.rb index 2a668caf3..0aef037d1 100644 --- a/spec/system/admin/poll/shifts_spec.rb +++ b/spec/system/admin/poll/shifts_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin shifts" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin shifts", :admin do scenario "Show" do officer = create(:poll_officer) diff --git a/spec/system/admin/proposal_notifications_spec.rb b/spec/system/admin/proposal_notifications_spec.rb index a8c6a66ea..88456a445 100644 --- a/spec/system/admin/proposal_notifications_spec.rb +++ b/spec/system/admin/proposal_notifications_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin proposal notifications" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin proposal notifications", :admin do scenario "List shows all relevant info" do proposal_notification = create(:proposal_notification, :hidden) visit admin_hidden_proposal_notifications_path diff --git a/spec/system/admin/proposals_spec.rb b/spec/system/admin/proposals_spec.rb index 76ca035ac..2c5ed2d52 100644 --- a/spec/system/admin/proposals_spec.rb +++ b/spec/system/admin/proposals_spec.rb @@ -1,10 +1,6 @@ require "rails_helper" -describe "Admin proposals" do - before do - login_as create(:administrator).user - end - +describe "Admin proposals", :admin do it_behaves_like "admin_milestoneable", :proposal, "admin_polymorphic_path" @@ -64,9 +60,6 @@ describe "Admin proposals" do scenario "Successful proposals show create question button" do successful_proposals = create_successful_proposals - admin = create(:administrator) - - login_as(admin.user) visit admin_proposals_path diff --git a/spec/system/admin/settings_spec.rb b/spec/system/admin/settings_spec.rb index 402d93540..50af58110 100644 --- a/spec/system/admin/settings_spec.rb +++ b/spec/system/admin/settings_spec.rb @@ -1,10 +1,6 @@ require "rails_helper" -describe "Admin settings" do - before do - login_as(create(:administrator).user) - end - +describe "Admin settings", :admin do scenario "Index" do create(:setting, key: "super.users.first") create(:setting, key: "super.users.second") @@ -36,16 +32,12 @@ describe "Admin settings" do end scenario "When `Map settings` tab content is hidden map should not be initialized" do - admin = create(:administrator).user - login_as(admin) visit admin_settings_path expect(page).not_to have_css("#admin-map.leaflet-container", visible: :all) end scenario "When `Map settings` tab content is shown map should be initialized" do - admin = create(:administrator).user - login_as(admin) visit admin_settings_path find("#map-tab").click @@ -57,8 +49,7 @@ describe "Admin settings" do describe "Update map" do scenario "Should not be able when map feature deactivated" do Setting["feature.map"] = false - admin = create(:administrator).user - login_as(admin) + visit admin_settings_path find("#map-tab").click @@ -70,8 +61,7 @@ describe "Admin settings" do scenario "Should be able when map feature activated" do Setting["feature.map"] = true - admin = create(:administrator).user - login_as(admin) + visit admin_settings_path find("#map-tab").click @@ -83,8 +73,7 @@ describe "Admin settings" do scenario "Should show successful notice" do Setting["feature.map"] = true - admin = create(:administrator).user - login_as(admin) + visit admin_settings_path within "#map-form" do @@ -96,8 +85,6 @@ describe "Admin settings" do scenario "Should display marker by default", :js do Setting["feature.map"] = true - admin = create(:administrator).user - login_as(admin) visit admin_settings_path @@ -107,8 +94,6 @@ describe "Admin settings" do scenario "Should update marker", :js do Setting["feature.map"] = true - admin = create(:administrator).user - login_as(admin) visit admin_settings_path find("#map-tab").click @@ -125,8 +110,6 @@ describe "Admin settings" do describe "Update content types" do scenario "stores the correct mime types" do setting = Setting.create!(key: "upload.images.content_types", value: "image/png") - admin = create(:administrator).user - login_as(admin) visit admin_settings_path find("#images-and-documents-tab").click @@ -161,8 +144,6 @@ describe "Admin settings" do scenario "Should not be able when remote census feature deactivated" do Setting["feature.remote_census"] = nil - admin = create(:administrator).user - login_as(admin) visit admin_settings_path find("#remote-census-tab").click @@ -172,8 +153,6 @@ describe "Admin settings" do end scenario "Should be able when remote census feature activated" do - admin = create(:administrator).user - login_as(admin) visit admin_settings_path find("#remote-census-tab").click @@ -194,8 +173,7 @@ describe "Admin settings" do scenario "On #tab-remote-census-configuration", :js do remote_census_setting = create(:setting, key: "remote_census.general.whatever") - admin = create(:administrator).user - login_as(admin) + visit admin_settings_path find("#remote-census-tab").click @@ -211,8 +189,7 @@ describe "Admin settings" do scenario "On #tab-configuration", :js do configuration_setting = Setting.create!(key: "whatever") - admin = create(:administrator).user - login_as(admin) + visit admin_settings_path find("#tab-configuration").click @@ -232,8 +209,7 @@ describe "Admin settings" do scenario "On #tab-map-configuration", :js do map_setting = Setting.create!(key: "map.whatever") - admin = create(:administrator).user - login_as(admin) + visit admin_settings_path find("#map-tab").click @@ -249,8 +225,7 @@ describe "Admin settings" do scenario "On #tab-proposals", :js do proposal_dashboard_setting = Setting.create!(key: "proposals.whatever") - admin = create(:administrator).user - login_as(admin) + visit admin_settings_path find("#proposals-tab").click @@ -265,8 +240,7 @@ describe "Admin settings" do scenario "On #tab-participation-processes", :js do process_setting = Setting.create!(key: "process.whatever") - admin = create(:administrator).user - login_as(admin) + visit admin_settings_path find("#participation-processes-tab").click @@ -280,8 +254,7 @@ describe "Admin settings" do scenario "On #tab-feature-flags", :js do feature_setting = Setting.create!(key: "feature.whatever") - admin = create(:administrator).user - login_as(admin) + visit admin_settings_path find("#features-tab").click diff --git a/spec/system/admin/signature_sheets_spec.rb b/spec/system/admin/signature_sheets_spec.rb index 254d156c4..29fa6b0d5 100644 --- a/spec/system/admin/signature_sheets_spec.rb +++ b/spec/system/admin/signature_sheets_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Signature sheets" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Signature sheets", :admin do context "Index" do scenario "Lists all signature_sheets" do 3.times { create(:signature_sheet) } diff --git a/spec/system/admin/site_customization/content_blocks_spec.rb b/spec/system/admin/site_customization/content_blocks_spec.rb index 6b30f0aae..5cd02b76b 100644 --- a/spec/system/admin/site_customization/content_blocks_spec.rb +++ b/spec/system/admin/site_customization/content_blocks_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin custom content blocks" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin custom content blocks", :admin do scenario "Index" do block = create(:site_customization_content_block) heading_block = create(:heading_content_block) diff --git a/spec/system/admin/site_customization/documents_spec.rb b/spec/system/admin/site_customization/documents_spec.rb index 51d0a3f2b..237887ff3 100644 --- a/spec/system/admin/site_customization/documents_spec.rb +++ b/spec/system/admin/site_customization/documents_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Documents" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Documents", :admin do scenario "Navigation", :js do visit admin_root_path diff --git a/spec/system/admin/site_customization/images_spec.rb b/spec/system/admin/site_customization/images_spec.rb index 98d91e32f..f98b3680f 100644 --- a/spec/system/admin/site_customization/images_spec.rb +++ b/spec/system/admin/site_customization/images_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin custom images" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin custom images", :admin do scenario "Upload valid png image" do visit admin_root_path diff --git a/spec/system/admin/site_customization/information_texts_spec.rb b/spec/system/admin/site_customization/information_texts_spec.rb index 82a61bbcb..b6b6865e3 100644 --- a/spec/system/admin/site_customization/information_texts_spec.rb +++ b/spec/system/admin/site_customization/information_texts_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin custom information texts" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin custom information texts", :admin do scenario "page is correctly loaded" do visit admin_site_customization_information_texts_path diff --git a/spec/system/admin/site_customization/pages_spec.rb b/spec/system/admin/site_customization/pages_spec.rb index 066324e26..39edcbf69 100644 --- a/spec/system/admin/site_customization/pages_spec.rb +++ b/spec/system/admin/site_customization/pages_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin custom pages" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Admin custom pages", :admin do context "Index" do scenario "lists all created custom pages" do custom_page = create(:site_customization_page) diff --git a/spec/system/admin/stats_spec.rb b/spec/system/admin/stats_spec.rb index cbf6ec8df..6b68023f4 100644 --- a/spec/system/admin/stats_spec.rb +++ b/spec/system/admin/stats_spec.rb @@ -1,9 +1,7 @@ require "rails_helper" -describe "Stats" do +describe "Stats", :admin do before do - admin = create(:administrator) - login_as(admin.user) visit root_path end diff --git a/spec/system/admin/tags_spec.rb b/spec/system/admin/tags_spec.rb index 6cda5cd2a..28bcec539 100644 --- a/spec/system/admin/tags_spec.rb +++ b/spec/system/admin/tags_spec.rb @@ -1,9 +1,8 @@ require "rails_helper" -describe "Admin tags" do +describe "Admin tags", :admin do before do create(:tag, :category, name: "Existence") - login_as(create(:administrator).user) end scenario "Index" do diff --git a/spec/system/admin/translatable_spec.rb b/spec/system/admin/translatable_spec.rb index 177a43909..0e0e2ae18 100644 --- a/spec/system/admin/translatable_spec.rb +++ b/spec/system/admin/translatable_spec.rb @@ -1,9 +1,8 @@ require "rails_helper" -describe "Admin edit translatable records" do +describe "Admin edit translatable records", :admin do before do translatable.update!(attributes) - login_as(create(:administrator).user) end let(:fields) { translatable.translated_attribute_names } diff --git a/spec/system/admin/valuator_groups_spec.rb b/spec/system/admin/valuator_groups_spec.rb index 4a7d2445d..53b48b323 100644 --- a/spec/system/admin/valuator_groups_spec.rb +++ b/spec/system/admin/valuator_groups_spec.rb @@ -1,12 +1,6 @@ require "rails_helper" -describe "Valuator groups" do - let(:admin) { create(:administrator).user } - - before do - login_as(admin) - end - +describe "Valuator groups", :admin do scenario "Index" do group1 = create(:valuator_group) group2 = create(:valuator_group) diff --git a/spec/system/admin/valuators_spec.rb b/spec/system/admin/valuators_spec.rb index 8fa0609d8..388da65bd 100644 --- a/spec/system/admin/valuators_spec.rb +++ b/spec/system/admin/valuators_spec.rb @@ -1,14 +1,10 @@ require "rails_helper" -describe "Admin valuators" do - let(:admin) { create(:administrator) } +describe "Admin valuators", :admin do let!(:user) { create(:user, username: "Jose Luis Balbin") } let!(:valuator) { create(:valuator, description: "Very reliable") } - before do - login_as(admin.user) - visit admin_valuators_path - end + before { visit admin_valuators_path } scenario "Show" do visit admin_valuator_path(valuator) diff --git a/spec/system/admin/verifications_spec.rb b/spec/system/admin/verifications_spec.rb index ec05fe6e7..69bb37fb2 100644 --- a/spec/system/admin/verifications_spec.rb +++ b/spec/system/admin/verifications_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Incomplete verifications" do - before do - admin = create(:administrator) - login_as(admin.user) - end - +describe "Incomplete verifications", :admin do scenario "Index" do incompletely_verified_user1 = create(:user, :incomplete_verification) incompletely_verified_user2 = create(:user, :incomplete_verification) diff --git a/spec/system/admin/widgets/cards_spec.rb b/spec/system/admin/widgets/cards_spec.rb index 4d8189f1d..969a9b0ca 100644 --- a/spec/system/admin/widgets/cards_spec.rb +++ b/spec/system/admin/widgets/cards_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Cards" do - before do - admin = create(:administrator).user - login_as(admin) - end - +describe "Cards", :admin do scenario "Create", :js do visit admin_homepage_path click_link "Create card" diff --git a/spec/system/admin_spec.rb b/spec/system/admin_spec.rb index c32ec037e..e6949140d 100644 --- a/spec/system/admin_spec.rb +++ b/spec/system/admin_spec.rb @@ -2,10 +2,6 @@ require "rails_helper" describe "Admin" do let(:user) { create(:user) } - let(:administrator) do - create(:administrator, user: user) - user - end scenario "Access as regular user is not authorized" do login_as(user) @@ -55,16 +51,14 @@ describe "Admin" do expect(page).to have_content "You do not have permission to access this page" end - scenario "Access as administrator is authorized" do - login_as(administrator) + scenario "Access as administrator is authorized", :admin do visit admin_root_path expect(page).to have_current_path(admin_root_path) expect(page).not_to have_content "You do not have permission to access this page" end - scenario "Admin access links" do - login_as(administrator) + scenario "Admin access links", :admin do visit root_path expect(page).to have_link("Administration") @@ -73,8 +67,7 @@ describe "Admin" do expect(page).to have_link("Management") end - scenario "Admin dashboard" do - login_as(administrator) + scenario "Admin dashboard", :admin do visit root_path click_link "Administration" @@ -85,8 +78,7 @@ describe "Admin" do expect(page).not_to have_css("#valuation_menu") end - scenario "Admin menu does not hide active elements", :js do - login_as(administrator) + scenario "Admin menu does not hide active elements", :js, :admin do visit admin_budgets_path within("#admin_menu") do diff --git a/spec/system/budget_polls/budgets_spec.rb b/spec/system/budget_polls/budgets_spec.rb index 9cda949a2..d921c047a 100644 --- a/spec/system/budget_polls/budgets_spec.rb +++ b/spec/system/budget_polls/budgets_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Admin Budgets" do - before do - admin = create(:administrator).user - login_as(admin) - end - +describe "Admin Budgets", :admin do context "Index" do scenario "Create poll if the budget does not have a poll associated" do budget = create(:budget) diff --git a/spec/system/budget_polls/polls_spec.rb b/spec/system/budget_polls/polls_spec.rb index 85bcf4cdf..76869e44f 100644 --- a/spec/system/budget_polls/polls_spec.rb +++ b/spec/system/budget_polls/polls_spec.rb @@ -13,12 +13,11 @@ describe "Polls" do end end - context "Admin index" do + context "Admin index", :admin do scenario "Budget polls should not appear in the list" do poll = create(:poll) budget_poll = create(:poll, :for_budget) - login_as(create(:administrator).user) visit admin_polls_path expect(page).to have_content(poll.name) diff --git a/spec/system/budget_polls/questions_spec.rb b/spec/system/budget_polls/questions_spec.rb index 86d7746a0..bc96e8e0c 100644 --- a/spec/system/budget_polls/questions_spec.rb +++ b/spec/system/budget_polls/questions_spec.rb @@ -1,11 +1,6 @@ require "rails_helper" -describe "Poll Questions" do - before do - admin = create(:administrator).user - login_as(admin) - end - +describe "Poll Questions", :admin do scenario "Do not display polls associated to a budget" do create(:poll, name: "Citizen Proposal Poll") create(:poll, :for_budget, name: "Participatory Budget Poll") diff --git a/spec/system/budgets/investments_spec.rb b/spec/system/budgets/investments_spec.rb index 66a32a1dd..8382b7f05 100644 --- a/spec/system/budgets/investments_spec.rb +++ b/spec/system/budgets/investments_spec.rb @@ -947,13 +947,11 @@ describe "Budget Investments" do expect(page).to have_content message_error end - scenario "Another User can't edit budget investment" do + scenario "Another User can't edit budget investment", :admin do message_error = "You do not have permission to carry out the action 'edit' on budget/investment" - admin = create(:administrator) daniel = create(:user, :level_two) investment = create(:budget_investment, heading: heading, author: daniel) - login_as(admin.user) visit edit_budget_investment_path(budget, investment) expect(page).to have_content message_error @@ -1337,11 +1335,10 @@ describe "Budget Investments" do { "budget_id": "budget_id" } context "Destroy" do - scenario "Admin cannot destroy budget investments" do + scenario "Admin cannot destroy budget investments", :admin do user = create(:user, :level_two) investment = create(:budget_investment, heading: heading, author: user) - login_as(create(:administrator).user) visit user_path(user) within("#budget_investment_#{investment.id}") do diff --git a/spec/system/campaigns_spec.rb b/spec/system/campaigns_spec.rb index 2241a4759..27fe905be 100644 --- a/spec/system/campaigns_spec.rb +++ b/spec/system/campaigns_spec.rb @@ -1,13 +1,9 @@ require "rails_helper" -describe "Email campaigns" do +describe "Email campaigns", :admin do let(:campaign1) { create(:campaign) } let(:campaign2) { create(:campaign) } - before do - login_as(create(:administrator).user) - end - scenario "Track email templates" do 3.times { visit root_path(track_id: campaign1.track_id) } 5.times { visit root_path(track_id: campaign2.track_id) } diff --git a/spec/system/ckeditor_spec.rb b/spec/system/ckeditor_spec.rb index d09732d97..9000b1c7d 100644 --- a/spec/system/ckeditor_spec.rb +++ b/spec/system/ckeditor_spec.rb @@ -15,9 +15,7 @@ describe "CKEditor" do expect(page).to have_css ".translatable-fields[data-locale='en'] .cke_wysiwyg_frame" end - scenario "uploading an image through the upload tab", :js do - login_as(create(:administrator).user) - + scenario "uploading an image through the upload tab", :js, :admin do visit new_admin_site_customization_page_path fill_in_ckeditor "Content", with: "Filling in to make sure CKEditor is loaded" find(".cke_button__image").click @@ -40,9 +38,7 @@ describe "CKEditor" do expect(page).to have_css "img[src$='clippy.jpg']" end - scenario "cannot upload attachments through link tab", :js do - login_as(create(:administrator).user) - + scenario "cannot upload attachments through link tab", :js, :admin do visit new_admin_site_customization_page_path fill_in_ckeditor "Content", with: "Filling in to make sure CKEditor is loaded" find(".cke_button__link").click @@ -53,9 +49,7 @@ describe "CKEditor" do end context "When navigating back to editor page using browser history back" do - scenario "display ckeditor unsaved contents", :js do - login_as(create(:administrator).user) - + scenario "display ckeditor unsaved contents", :js, :admin do visit new_admin_newsletter_path fill_in_ckeditor "Email content", with: "This is an unsaved body" click_link "Newsletters" diff --git a/spec/system/comments/budget_investments_spec.rb b/spec/system/comments/budget_investments_spec.rb index cffed554f..6f077bcf8 100644 --- a/spec/system/comments/budget_investments_spec.rb +++ b/spec/system/comments/budget_investments_spec.rb @@ -479,10 +479,7 @@ describe "Commenting Budget::Investments" do end end - scenario "can not comment as a moderator" do - admin = create(:administrator) - - login_as(admin.user) + scenario "can not comment as a moderator", :admin do visit budget_investment_path(investment.budget, investment) expect(page).not_to have_content "Comment as moderator" diff --git a/spec/system/comments/debates_spec.rb b/spec/system/comments/debates_spec.rb index f05ac20fb..0b1660a59 100644 --- a/spec/system/comments/debates_spec.rb +++ b/spec/system/comments/debates_spec.rb @@ -467,10 +467,7 @@ describe "Commenting debates" do expect(page).not_to have_selector("#js-comment-form-comment_#{comment.id}") end - scenario "can not comment as a moderator" do - admin = create(:administrator) - - login_as(admin.user) + scenario "can not comment as a moderator", :admin do visit debate_path(debate) expect(page).not_to have_content "Comment as moderator" diff --git a/spec/system/comments/legislation_annotations_spec.rb b/spec/system/comments/legislation_annotations_spec.rb index ad19b738c..dbbb41294 100644 --- a/spec/system/comments/legislation_annotations_spec.rb +++ b/spec/system/comments/legislation_annotations_spec.rb @@ -496,10 +496,7 @@ describe "Commenting legislation questions" do expect(page).not_to have_selector("#js-comment-form-comment_#{comment.id}") end - scenario "can not comment as a moderator" do - admin = create(:administrator) - - login_as(admin.user) + scenario "can not comment as a moderator", :admin do visit legislation_process_draft_version_annotation_path(legislation_annotation.draft_version.process, legislation_annotation.draft_version, legislation_annotation) diff --git a/spec/system/comments/legislation_questions_spec.rb b/spec/system/comments/legislation_questions_spec.rb index ebb58a67f..efc76cb65 100644 --- a/spec/system/comments/legislation_questions_spec.rb +++ b/spec/system/comments/legislation_questions_spec.rb @@ -446,10 +446,7 @@ describe "Commenting legislation questions" do expect(page).not_to have_selector("#js-comment-form-comment_#{comment.id}") end - scenario "can not comment as a moderator" do - admin = create(:administrator) - - login_as(admin.user) + scenario "can not comment as a moderator", :admin do visit legislation_process_question_path(legislation_question.process, legislation_question) expect(page).not_to have_content "Comment as moderator" diff --git a/spec/system/comments/polls_spec.rb b/spec/system/comments/polls_spec.rb index bcbbd02a1..27a4a9f0c 100644 --- a/spec/system/comments/polls_spec.rb +++ b/spec/system/comments/polls_spec.rb @@ -422,12 +422,9 @@ describe "Commenting polls" do expect(page).not_to have_selector("#js-comment-form-comment_#{comment.id}") end - scenario "can not comment as a moderator" do + scenario "can not comment as a moderator", :admin do skip "Feature not implemented yet, review soon" - admin = create(:administrator) - - login_as(admin.user) visit poll_path(poll) expect(page).not_to have_content "Comment as moderator" diff --git a/spec/system/comments/proposals_spec.rb b/spec/system/comments/proposals_spec.rb index 4a1177e43..61224294a 100644 --- a/spec/system/comments/proposals_spec.rb +++ b/spec/system/comments/proposals_spec.rb @@ -412,10 +412,7 @@ describe "Commenting proposals" do expect(page).not_to have_selector("#js-comment-form-comment_#{comment.id}") end - scenario "can not comment as a moderator" do - admin = create(:administrator) - - login_as(admin.user) + scenario "can not comment as a moderator", :admin do visit proposal_path(proposal) expect(page).not_to have_content "Comment as moderator" diff --git a/spec/system/comments/topics_spec.rb b/spec/system/comments/topics_spec.rb index 94e2e481a..dcffeaa98 100644 --- a/spec/system/comments/topics_spec.rb +++ b/spec/system/comments/topics_spec.rb @@ -458,12 +458,10 @@ describe "Commenting topics from proposals" do expect(page).not_to have_selector("#js-comment-form-comment_#{comment.id}") end - scenario "can not comment as a moderator" do + scenario "can not comment as a moderator", :admin do community = proposal.community topic = create(:topic, community: community) - admin = create(:administrator) - login_as(admin.user) visit community_topic_path(community, topic) expect(page).not_to have_content "Comment as moderator" @@ -966,12 +964,10 @@ describe "Commenting topics from budget investments" do expect(page).not_to have_selector("#js-comment-form-comment_#{comment.id}") end - scenario "can not comment as a moderator" do + scenario "can not comment as a moderator", :admin do community = investment.community topic = create(:topic, community: community) - admin = create(:administrator) - login_as(admin.user) visit community_topic_path(community, topic) expect(page).not_to have_content "Comment as moderator" diff --git a/spec/system/debates_spec.rb b/spec/system/debates_spec.rb index 216d29880..2f97dffa3 100644 --- a/spec/system/debates_spec.rb +++ b/spec/system/debates_spec.rb @@ -1066,10 +1066,9 @@ describe "Debates" do end end - scenario "Mark/Unmark a debate as featured" do + scenario "Mark/Unmark a debate as featured", :admin do debate = create(:debate) - login_as(create(:administrator).user) visit debates_path within("#debates") do expect(page).not_to have_content "Featured" @@ -1097,22 +1096,20 @@ describe "Debates" do end end - scenario "Index include featured debates" do + scenario "Index include featured debates", :admin do create(:debate, featured_at: Time.current) create(:debate) - login_as(create(:administrator).user) visit debates_path within("#debates") do expect(page).to have_content("Featured") end end - scenario "Index do not show featured debates if none is marked as featured" do + scenario "Index do not show featured debates if none is marked as featured", :admin do create(:debate) create(:debate) - login_as(create(:administrator).user) visit debates_path within("#debates") do expect(page).not_to have_content("Featured") diff --git a/spec/system/emails_spec.rb b/spec/system/emails_spec.rb index 345cc33cc..7219ed802 100644 --- a/spec/system/emails_spec.rb +++ b/spec/system/emails_spec.rb @@ -461,16 +461,13 @@ describe "Emails" do end end - context "Newsletter" do + context "Newsletter", :admin do scenario "Send newsletter email to selected users" do user_with_newsletter_in_segment_1 = create(:user, :with_proposal, newsletter: true) user_with_newsletter_in_segment_2 = create(:user, :with_proposal, newsletter: true) user_with_newsletter_not_in_segment = create(:user, newsletter: true) user_without_newsletter_in_segment = create(:user, :with_proposal, newsletter: false) - admin = create(:administrator) - login_as(admin.user) - visit new_admin_newsletter_path fill_in_newsletter_form(segment_recipient: "Proposal authors") click_button "Create Newsletter" diff --git a/spec/system/polls/polls_spec.rb b/spec/system/polls/polls_spec.rb index 3783bba86..675e10d05 100644 --- a/spec/system/polls/polls_spec.rb +++ b/spec/system/polls/polls_spec.rb @@ -484,11 +484,9 @@ describe "Polls" do expect(page).to have_content("You do not have permission to carry out the action 'stats' on poll.") end - scenario "Do not show poll results or stats to admins if disabled" do + scenario "Do not show poll results or stats to admins if disabled", :admin do poll = create(:poll, :expired, results_enabled: false, stats_enabled: false) - admin = create(:administrator).user - login_as admin visit poll_path(poll) expect(page).not_to have_content("Poll results") diff --git a/spec/system/proposals_spec.rb b/spec/system/proposals_spec.rb index dd204ec11..3172a1fec 100644 --- a/spec/system/proposals_spec.rb +++ b/spec/system/proposals_spec.rb @@ -1854,11 +1854,8 @@ describe "Successful proposals" do end end - scenario "Successful proposals do not show create question button in index" do + scenario "Successful proposals do not show create question button in index", :admin do successful_proposals = create_successful_proposals - admin = create(:administrator) - - login_as(admin.user) visit proposals_path @@ -1869,11 +1866,8 @@ describe "Successful proposals" do end end - scenario "Successful proposals do not show create question button in show" do + scenario "Successful proposals do not show create question button in show", :admin do successful_proposals = create_successful_proposals - admin = create(:administrator) - - login_as(admin.user) successful_proposals.each do |proposal| visit proposal_path(proposal) diff --git a/spec/system/site_customization/information_texts_spec.rb b/spec/system/site_customization/information_texts_spec.rb index 002128722..fe360c0dd 100644 --- a/spec/system/site_customization/information_texts_spec.rb +++ b/spec/system/site_customization/information_texts_spec.rb @@ -1,10 +1,7 @@ require "rails_helper" -describe "Custom information texts" do +describe "Custom information texts", :admin do scenario "Show custom texts instead of default ones" do - admin = create(:administrator) - login_as(admin.user) - debate_key = "debates.index.section_footer.title" proposal_key = "proposals.index.section_footer.title" @@ -32,14 +29,12 @@ describe "Custom information texts" do end scenario "Show custom text with options", :js do - admin = create(:administrator) user = create(:user, username: "Rachel") create(:budget_investment, author_id: user.id) intro_key = "mailers.budget_investment_created.intro" create(:i18n_content, key: intro_key, value_en: "Hi %{author}") - login_as(admin.user) visit admin_site_customization_information_texts_path(tab: "mailers") expect(page).to have_content "Hi %{author}" diff --git a/spec/system/tags/budget_investments_spec.rb b/spec/system/tags/budget_investments_spec.rb index 4e165e8b8..6abd533df 100644 --- a/spec/system/tags/budget_investments_spec.rb +++ b/spec/system/tags/budget_investments_spec.rb @@ -332,13 +332,11 @@ describe "Tags" do expect(page).not_to have_content "Education" end - scenario "Valuators do not see user tags" do + scenario "Valuators do not see user tags", :admin do investment = create(:budget_investment, heading: heading, tag_list: "Park") investment.set_tag_list_on(:valuation_tags, "Education") investment.save! - login_as(admin) - visit admin_budget_budget_investment_path(budget, investment) click_link "Edit classification" diff --git a/spec/system/users_spec.rb b/spec/system/users_spec.rb index d15cb7330..a93492263 100644 --- a/spec/system/users_spec.rb +++ b/spec/system/users_spec.rb @@ -217,8 +217,7 @@ describe "Users" do expect(page).not_to have_content(user.email) end - scenario "is shown if logged in user is admin" do - login_as(create(:administrator).user) + scenario "is shown if logged in user is admin", :admin do visit user_path(user) expect(page).to have_content(user.email) end diff --git a/spec/system/xss_spec.rb b/spec/system/xss_spec.rb index 6b6d2d351..d47bef325 100644 --- a/spec/system/xss_spec.rb +++ b/spec/system/xss_spec.rb @@ -3,20 +3,18 @@ require "rails_helper" describe "Cross-Site Scripting protection", :js do let(:attack_code) { "" } - scenario "valuators in admin investments index" do + scenario "valuators in admin investments index", :admin do hacker = create(:user, username: attack_code) investment = create(:budget_investment, valuators: [create(:valuator, user: hacker)]) - login_as(create(:administrator).user) visit admin_budget_budget_investments_path(investment.budget) expect(page.text).not_to be_empty end - scenario "edit banner" do + scenario "edit banner", :admin do banner = create(:banner, title: attack_code) - login_as(create(:administrator).user) visit edit_admin_banner_path(banner) title_id = find_field("Title")[:id] @@ -25,10 +23,9 @@ describe "Cross-Site Scripting protection", :js do expect(page.text).not_to be_empty end - scenario "banner URL" do + scenario "banner URL", :admin do banner = create(:banner, title: "Banned!", target_url: "javascript:document.body.remove()") - login_as(create(:administrator).user) visit edit_admin_banner_path(banner) find(:css, "a", text: "Banned!").click @@ -44,10 +41,9 @@ describe "Cross-Site Scripting protection", :js do expect(page.text).not_to be_empty end - scenario "hacked translations" do + scenario "hacked translations", :admin do I18nContent.create!(key: "admin.budget_investments.index.list.title", value: attack_code) - login_as(create(:administrator).user) visit admin_budget_budget_investments_path(create(:budget_investment).budget) expect(page.text).not_to be_empty @@ -71,10 +67,9 @@ describe "Cross-Site Scripting protection", :js do expect(page.text).not_to be_empty end - scenario "languages in use" do + scenario "languages in use", :admin do I18nContent.create!(key: "shared.translations.languages_in_use", value: attack_code) - login_as(create(:administrator).user) visit edit_admin_budget_path(create(:budget)) click_link "Remove language"