diff --git a/spec/features/valuation_spec.rb b/spec/features/valuation_spec.rb index 1cb95d23d..3ae2558a5 100644 --- a/spec/features/valuation_spec.rb +++ b/spec/features/valuation_spec.rb @@ -3,96 +3,88 @@ require 'rails_helper' feature 'Valuation' do let(:user) { create(:user) } - background do - Setting['feature.spending_proposals'] = true - Setting['feature.spending_proposal_features.voting_allowed'] = true + context 'Access' do + scenario 'Access as regular user is not authorized' do + login_as(user) + visit root_path + + expect(page).not_to have_link("Valuation") + visit valuation_root_path + + expect(page).not_to have_current_path(valuation_root_path) + expect(page).to have_current_path(root_path) + expect(page).to have_content "You do not have permission to access this page" + end + + scenario 'Access as moderator is not authorized' do + create(:moderator, user: user) + login_as(user) + visit root_path + + expect(page).not_to have_link("Valuation") + visit valuation_root_path + + expect(page).not_to have_current_path(valuation_root_path) + expect(page).to have_current_path(root_path) + expect(page).to have_content "You do not have permission to access this page" + end + + scenario 'Access as manager is not authorized' do + create(:manager, user: user) + login_as(user) + visit root_path + + expect(page).not_to have_link("Valuation") + visit valuation_root_path + + expect(page).not_to have_current_path(valuation_root_path) + expect(page).to have_current_path(root_path) + expect(page).to have_content "You do not have permission to access this page" + end + + scenario 'Access as poll officer is not authorized' do + create(:poll_officer, user: user) + login_as(user) + visit root_path + + expect(page).not_to have_link("Valuation") + visit valuation_root_path + + expect(page).not_to have_current_path(valuation_root_path) + expect(page).to have_current_path(root_path) + expect(page).to have_content "You do not have permission to access this page" + end + + scenario 'Access as a valuator is authorized' do + create(:valuator, user: user) + create(:budget) + + login_as(user) + visit root_path + + expect(page).to have_link("Valuation") + click_on "Valuation" + + expect(page).to have_current_path(valuation_root_path) + expect(page).not_to have_content "You do not have permission to access this page" + end + + scenario 'Access as an administrator is authorized' do + create(:administrator, user: user) + create(:budget) + + login_as(user) + visit root_path + + expect(page).to have_link("Valuation") + click_on "Valuation" + + expect(page).to have_current_path(valuation_root_path) + expect(page).not_to have_content "You do not have permission to access this page" + end end - after do - Setting['feature.spending_proposals'] = nil - Setting['feature.spending_proposal_features.voting_allowed'] = nil - end - - scenario 'Access as regular user is not authorized' do - login_as(user) - visit root_path - - expect(page).not_to have_link("Valuation") - visit valuation_root_path - - expect(page).not_to have_current_path(valuation_root_path) - expect(page).to have_current_path(root_path) - expect(page).to have_content "You do not have permission to access this page" - end - - scenario 'Access as moderator is not authorized' do - create(:moderator, user: user) - login_as(user) - visit root_path - - expect(page).not_to have_link("Valuation") - visit valuation_root_path - - expect(page).not_to have_current_path(valuation_root_path) - expect(page).to have_current_path(root_path) - expect(page).to have_content "You do not have permission to access this page" - end - - scenario 'Access as manager is not authorized' do - create(:manager, user: user) - login_as(user) - visit root_path - - expect(page).not_to have_link("Valuation") - visit valuation_root_path - - expect(page).not_to have_current_path(valuation_root_path) - expect(page).to have_current_path(root_path) - expect(page).to have_content "You do not have permission to access this page" - end - - scenario 'Access as poll officer is not authorized' do - create(:poll_officer, user: user) - login_as(user) - visit root_path - - expect(page).not_to have_link("Valuation") - visit valuation_root_path - - expect(page).not_to have_current_path(valuation_root_path) - expect(page).to have_current_path(root_path) - expect(page).to have_content "You do not have permission to access this page" - end - - scenario 'Access as a valuator is authorized' do - create(:valuator, user: user) - create(:budget) - - login_as(user) - visit root_path - - expect(page).to have_link("Valuation") - click_on "Valuation" - - expect(page).to have_current_path(valuation_root_path) - expect(page).not_to have_content "You do not have permission to access this page" - end - - scenario 'Access as an administrator is authorized' do - create(:administrator, user: user) - create(:budget) - - login_as(user) - visit root_path - - expect(page).to have_link("Valuation") - click_on "Valuation" - - expect(page).to have_current_path(valuation_root_path) - expect(page).not_to have_content "You do not have permission to access this page" - end - - scenario "Valuation access links" do + scenario 'Valuation access links' do create(:valuator, user: user) create(:budget)