forked from rubyforgood/casa
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request rubyforgood#559 from rubyforgood/multi-case-548
Add tests for Volunteer can be assigned to multiple cases
- Loading branch information
Showing
8 changed files
with
79 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
require "rails_helper" | ||
|
||
RSpec.describe "case assigned to multiple volunteers", type: :feature do | ||
let!(:supervisor) { create(:casa_admin) } | ||
let!(:volunteer_1) { create(:volunteer, display_name: 'AAA') } | ||
let!(:volunteer_2) { create(:volunteer, display_name: 'BBB') } | ||
let!(:casa_case) { create(:casa_case) } | ||
|
||
it "supervisor assigns multiple volunteers to the same case" do | ||
sign_in supervisor | ||
visit edit_casa_case_path(casa_case.id) | ||
|
||
select volunteer_1.display_name, from: "Select a Volunteer" | ||
click_on "Assign Volunteer" | ||
expect(page).to have_text("Volunteer assigned to case") | ||
expect(page).to have_text(volunteer_1.display_name) | ||
|
||
select volunteer_2.display_name, from: "Select a Volunteer" | ||
click_on "Assign Volunteer" | ||
expect(page).to have_text("Volunteer assigned to case") | ||
expect(page).to have_text(volunteer_2.display_name) | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
require "rails_helper" | ||
|
||
RSpec.describe "volunteer assigned to multiple cases", type: :feature do | ||
let!(:supervisor) { create(:casa_admin) } | ||
let!(:volunteer) { create(:volunteer, display_name: 'AAA') } | ||
let!(:casa_case_1) { create(:casa_case, case_number: 'CINA1') } | ||
let!(:casa_case_2) { create(:casa_case, case_number: 'CINA2') } | ||
|
||
it "supervisor assigns multiple cases to the same volunteer" do | ||
sign_in supervisor | ||
visit edit_volunteer_path(volunteer.id) | ||
|
||
select casa_case_1.case_number, from: "Select a Case" | ||
click_on "Assign Case" | ||
expect(page).to have_text("Volunteer assigned to case") | ||
expect(page).to have_text(casa_case_1.case_number) | ||
|
||
select casa_case_2.case_number, from: "Select a Case" | ||
click_on "Assign Case" | ||
expect(page).to have_text("Volunteer assigned to case") | ||
expect(page).to have_text(casa_case_2.case_number) | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,37 @@ | ||
require "rails_helper" | ||
|
||
RSpec.describe CaseAssignment do | ||
let(:casa_case_1) { create(:casa_case) } | ||
let(:volunteer_1) { create(:volunteer) } | ||
let(:inactive) { create(:volunteer, :inactive) } | ||
let(:supervisor) { create(:supervisor) } | ||
let(:casa_case_2) { create(:casa_case) } | ||
let(:volunteer_2) { create(:volunteer) } | ||
|
||
it "should only allow active volunteers to be assigned" do | ||
casa_case = create(:casa_case) | ||
volunteer = create(:volunteer) | ||
inactive = create(:volunteer, :inactive) | ||
supervisor = create(:supervisor) | ||
expect(casa_case_1.case_assignments.new(volunteer: volunteer_1)).to be_valid | ||
casa_case_1.reload | ||
|
||
expect(casa_case_1.case_assignments.new(volunteer: inactive)).to be_invalid | ||
casa_case_1.reload | ||
|
||
expect(casa_case_1.case_assignments.new(volunteer: supervisor)).to be_invalid | ||
end | ||
|
||
it "allows two volunteers to be assigned to the same case" do | ||
casa_case_1.volunteers << volunteer_1 | ||
casa_case_1.volunteers << volunteer_2 | ||
casa_case_1.save! | ||
|
||
expect(casa_case.case_assignments.new(volunteer: volunteer)).to be_valid | ||
casa_case.reload | ||
expect(volunteer_1.casa_cases).to eq([casa_case_1]) | ||
end | ||
|
||
expect(casa_case.case_assignments.new(volunteer: inactive)).to be_invalid | ||
casa_case.reload | ||
it "allows volunteer to be assigned to multiple cases" do | ||
volunteer_1.casa_cases << casa_case_1 | ||
volunteer_1.casa_cases << casa_case_2 | ||
volunteer_1.save! | ||
|
||
expect(casa_case.case_assignments.new(volunteer: supervisor)).to be_invalid | ||
expect(CasaCase.find(casa_case_1.id).volunteers).to eq([volunteer_1]) | ||
expect(CasaCase.find(casa_case_2.id).volunteers).to eq([volunteer_1]) | ||
end | ||
end |