forked from rubyforgood/casa
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcasa_cases_spec.rb
125 lines (106 loc) · 3.86 KB
/
casa_cases_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
require "rails_helper"
RSpec.describe "/casa_cases", type: :request do
# CasaCase. As you add validations to CasaCase, be sure to
# adjust the attributes here as well.
let(:valid_attributes) { {case_number: "1234", transition_aged_youth: true} }
let(:invalid_attributes) { {case_number: nil} }
before { sign_in create(:user, :casa_admin) }
describe "GET /index" do
it "renders a successful response" do
CasaCase.create! valid_attributes
get casa_cases_url
expect(response).to be_successful
end
end
describe "GET /show" do
it "renders a successful response" do
casa_case = CasaCase.create! valid_attributes
get casa_case_url(casa_case)
expect(response).to be_successful
end
end
describe "GET /new" do
it "renders a successful response" do
sign_in create(:user, :casa_admin)
get new_casa_case_url
expect(response).to be_successful
end
end
describe "GET /edit" do
it "render a successful response" do
casa_case = CasaCase.create! valid_attributes
get edit_casa_case_url(casa_case)
expect(response).to be_successful
end
end
describe "POST /create" do
context "with valid parameters" do
it "creates a new CasaCase" do
expect { post casa_cases_url, params: {casa_case: valid_attributes} }.to change(
CasaCase,
:count
).by(1)
end
it "redirects to the created casa_case" do
post casa_cases_url, params: {casa_case: valid_attributes}
expect(response).to redirect_to(casa_case_url(CasaCase.last))
end
end
context "with invalid parameters" do
it "does not create a new CasaCase" do
expect { post casa_cases_url, params: {casa_case: invalid_attributes} }.to change(
CasaCase,
:count
).by(0)
end
it "renders a successful response (i.e. to display the 'new' template)" do
post casa_cases_url, params: {casa_case: invalid_attributes}
expect(response).to be_successful
end
end
end
describe "PATCH /update" do
context "with valid parameters" do
let(:new_attributes) { {case_number: "12345", transition_aged_youth: false} }
it "does not update case_number for volunteers" do
sign_in create(:user, :volunteer)
casa_case = CasaCase.create! valid_attributes
patch casa_case_url(casa_case), params: {casa_case: new_attributes}
casa_case.reload
expect(casa_case.case_number).to eq "1234"
expect(casa_case.transition_aged_youth).to eq false
end
it "updates the requested casa_case" do
casa_case = CasaCase.create! valid_attributes
patch casa_case_url(casa_case), params: {casa_case: new_attributes}
casa_case.reload
expect(casa_case.case_number).to eq "12345"
expect(casa_case.transition_aged_youth).to eq false
end
it "redirects to the casa_case" do
casa_case = CasaCase.create! valid_attributes
patch casa_case_url(casa_case), params: {casa_case: new_attributes}
casa_case.reload
expect(response).to redirect_to(root_path)
end
end
context "with invalid parameters" do
it "renders a successful response (i.e. to display the 'edit' template)" do
casa_case = CasaCase.create! valid_attributes
patch casa_case_url(casa_case), params: {casa_case: invalid_attributes}
expect(response).to be_successful
end
end
end
describe "DELETE /destroy" do
it "destroys the requested casa_case" do
casa_case = CasaCase.create! valid_attributes
expect { delete casa_case_url(casa_case) }.to change(CasaCase, :count).by(-1)
end
it "redirects to the casa_cases list" do
casa_case = CasaCase.create! valid_attributes
delete casa_case_url(casa_case)
expect(response).to redirect_to(casa_cases_url)
end
end
end