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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user