Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 18 additions & 26 deletions spec/requests/casa_cases_spec.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
require "rails_helper"

RSpec.shared_examples "casa_case access control" do |user_role|
it "renders a successful response" do
get casa_case_url(casa_case)
expect(response).to be_successful
end

it "fails across organizations" do
other_org = build(:casa_org)
other_case = create(:casa_case, casa_org: other_org)

get casa_case_url(other_case)
expect(response).to be_redirect
expect(flash[:notice]).to eq("Sorry, you are not authorized to perform this action.")
end
end

RSpec.describe "/casa_cases", type: :request do
let(:date_in_care) { Date.today }
let(:organization) { build(:casa_org) }
Expand Down Expand Up @@ -514,19 +530,7 @@
let!(:case_assignment) { create(:case_assignment, volunteer: user, casa_case: casa_case) }

describe "GET /show" do
it "renders a successful response" do
get casa_case_url(casa_case)
expect(response).to be_successful
end

it "fails across organizations" do
other_org = build(:casa_org)
other_case = create(:casa_case, casa_org: other_org)

get casa_case_url(other_case)
expect(response).to be_redirect
expect(flash[:notice]).to eq("Sorry, you are not authorized to perform this action.")
end
include_examples "casa_case access control"
end

describe "GET /new" do
Expand Down Expand Up @@ -652,19 +656,7 @@
let(:user) { create(:supervisor, casa_org: organization) }

describe "GET /show" do
it "renders a successful response" do
get casa_case_url(casa_case)
expect(response).to be_successful
end

it "fails across organizations" do
other_org = build(:casa_org)
other_case = create(:casa_case, casa_org: other_org)

get casa_case_url(other_case)
expect(response).to be_redirect
expect(flash[:notice]).to eq("Sorry, you are not authorized to perform this action.")
end
include_examples "casa_case access control"
end

describe "GET /new" do
Expand Down
20 changes: 10 additions & 10 deletions spec/requests/reports_spec.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
require "rails_helper"

RSpec.shared_examples "successful authentication" do |user_role|
before do
sign_in build(user_role)
end

it { is_expected.to be_successful }
end

RSpec.describe "/reports", type: :request do
describe "GET #index" do
subject do
Expand All @@ -8,19 +16,11 @@
end

context "while signed in as an admin" do
before do
sign_in build(:casa_admin)
end

it { is_expected.to be_successful }
include_examples "successful authentication", :casa_admin
end

context "while signed in as a supervisor" do
before do
sign_in build(:supervisor)
end

it { is_expected.to be_successful }
include_examples "successful authentication", :supervisor
end

context "while signed in as a volunteer" do
Expand Down
32 changes: 14 additions & 18 deletions spec/system/supervisors/new_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,18 @@

require "rails_helper"

RSpec.shared_examples "user redirect with error" do |user_role|
let(:user) { create(user_role) }

before { sign_in user }

it "redirects the user with an error message" do
visit new_supervisor_path

expect(page).to have_selector(".alert", text: "Sorry, you are not authorized to perform this action.")
end
end

RSpec.describe "supervisors/new", type: :system do
context "when logged in as an admin" do
let(:admin) { create(:casa_admin) }
Expand Down Expand Up @@ -80,26 +92,10 @@
end

context "when logged in as a supervisor" do
let(:supervisor) { create(:supervisor) }

before { sign_in supervisor }

it "redirects the user with an error message" do
visit new_supervisor_path

expect(page).to have_selector(".alert", text: "Sorry, you are not authorized to perform this action.")
end
include_examples "user redirect with error", :supervisor
end

context "when logged in as a volunteer" do
let(:volunteer) { create(:volunteer) }

before { sign_in volunteer }

it "redirects the user with an error message" do
visit new_supervisor_path

expect(page).to have_selector(".alert", text: "Sorry, you are not authorized to perform this action.")
end
include_examples "user redirect with error", :volunteer
end
end
Loading