Simplify tests requiring admin login

We were repeating the same code over and over (with a few variants) to
setup tests which require an administrator. We can use a tag and
simplify the code.
This commit is contained in:
Javi Martín
2020-11-20 21:54:18 +01:00
parent 64205ab15f
commit 3da4ee00b8
82 changed files with 110 additions and 468 deletions

View File

@@ -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