Skip to content

Commit 38764a2

Browse files
Josh Justicesebjacobs
authored andcommitted
Add expectations for success responses
Because many methods only have expectations against variables assigned, nothing is currently specified that can be checked in Rails 5, where assigns checking is not included. This commit adds an expectation of the HTTP response code for each method, unless a redirect is specified (which is implicitly a 301 or 302).
1 parent e46ffc2 commit 38764a2

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

lib/generators/rspec/scaffold/templates/controller_spec.rb

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,16 @@
4848
<% end -%>
4949
expect(assigns(:<%= table_name %>)).to eq([<%= file_name %>])
5050
end
51+
52+
it "returns a success response" do
53+
<%= file_name %> = <%= class_name %>.create! valid_attributes
54+
<% if RUBY_VERSION < '1.9.3' -%>
55+
get :index, {}, valid_session
56+
<% else -%>
57+
get :index, params: {}, session: valid_session
58+
<% end -%>
59+
expect(response).to be_success
60+
end
5161
end
5262
5363
<% end -%>
@@ -61,6 +71,16 @@
6171
<% end -%>
6272
expect(assigns(:<%= ns_file_name %>)).to eq(<%= file_name %>)
6373
end
74+
75+
it "returns a success response" do
76+
<%= file_name %> = <%= class_name %>.create! valid_attributes
77+
<% if RUBY_VERSION < '1.9.3' -%>
78+
get :show, {:id => <%= file_name %>.to_param}, valid_session
79+
<% else -%>
80+
get :show, params: {id: <%= file_name %>.to_param}, session: valid_session
81+
<% end -%>
82+
expect(response).to be_success
83+
end
6484
end
6585
6686
describe "GET #new" do
@@ -72,6 +92,15 @@
7292
<% end -%>
7393
expect(assigns(:<%= ns_file_name %>)).to be_a_new(<%= class_name %>)
7494
end
95+
96+
it "returns a success response" do
97+
<% if RUBY_VERSION < '1.9.3' -%>
98+
get :new, {}, valid_session
99+
<% else -%>
100+
get :new, params: {}, session: valid_session
101+
<% end -%>
102+
expect(response).to be_success
103+
end
75104
end
76105
77106
describe "GET #edit" do
@@ -84,6 +113,16 @@
84113
<% end -%>
85114
expect(assigns(:<%= ns_file_name %>)).to eq(<%= file_name %>)
86115
end
116+
117+
it "returns a success response" do
118+
<%= file_name %> = <%= class_name %>.create! valid_attributes
119+
<% if RUBY_VERSION < '1.9.3' -%>
120+
get :edit, {:id => <%= file_name %>.to_param}, valid_session
121+
<% else -%>
122+
get :edit, params: {id: <%= file_name %>.to_param}, session: valid_session
123+
<% end -%>
124+
expect(response).to be_success
125+
end
87126
end
88127
89128
describe "POST #create" do
@@ -128,6 +167,15 @@
128167
expect(assigns(:<%= ns_file_name %>)).to be_a_new(<%= class_name %>)
129168
end
130169
170+
it "returns a success response (i.e. to display the 'new' template)" do
171+
<% if RUBY_VERSION < '1.9.3' -%>
172+
post :create, {:<%= ns_file_name %> => invalid_attributes}, valid_session
173+
<% else -%>
174+
post :create, params: {<%= ns_file_name %>: invalid_attributes}, session: valid_session
175+
<% end -%>
176+
expect(response).to be_success
177+
end
178+
131179
it "re-renders the 'new' template" do
132180
<% if RUBY_VERSION < '1.9.3' -%>
133181
post :create, {:<%= ns_file_name %> => invalid_attributes}, valid_session
@@ -188,6 +236,16 @@
188236
expect(assigns(:<%= ns_file_name %>)).to eq(<%= file_name %>)
189237
end
190238
239+
it "returns a success response (i.e. to display the 'edit' template)" do
240+
<%= file_name %> = <%= class_name %>.create! valid_attributes
241+
<% if RUBY_VERSION < '1.9.3' -%>
242+
put :update, {:id => <%= file_name %>.to_param, :<%= ns_file_name %> => invalid_attributes}, valid_session
243+
<% else -%>
244+
put :update, params: {id: <%= file_name %>.to_param, <%= ns_file_name %>: invalid_attributes}, session: valid_session
245+
<% end -%>
246+
expect(response).to be_success
247+
end
248+
191249
it "re-renders the 'edit' template" do
192250
<%= file_name %> = <%= class_name %>.create! valid_attributes
193251
<% if RUBY_VERSION < '1.9.3' -%>

0 commit comments

Comments
 (0)