Skip to content

Commit 5dd83b4

Browse files
committed
Fix controller spec template for --model-name option.
change ns_file_name to singular_table_name to support --model-name option. related: #2532
1 parent 33f1292 commit 5dd83b4

File tree

2 files changed

+24
-12
lines changed

2 files changed

+24
-12
lines changed

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

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -79,19 +79,19 @@
7979
context "with valid params" do
8080
it "creates a new <%= class_name %>" do
8181
expect {
82-
post :create, params: {<%= ns_file_name %>: valid_attributes}, session: valid_session
82+
post :create, params: {<%= singular_table_name %>: valid_attributes}, session: valid_session
8383
}.to change(<%= class_name %>, :count).by(1)
8484
end
8585
86-
it "redirects to the created <%= ns_file_name %>" do
87-
post :create, params: {<%= ns_file_name %>: valid_attributes}, session: valid_session
86+
it "redirects to the created <%= singular_table_name %>" do
87+
post :create, params: {<%= singular_table_name %>: valid_attributes}, session: valid_session
8888
expect(response).to redirect_to(<%= class_name %>.last)
8989
end
9090
end
9191
9292
context "with invalid params" do
9393
it "returns a success response (i.e. to display the 'new' template)" do
94-
post :create, params: {<%= ns_file_name %>: invalid_attributes}, session: valid_session
94+
post :create, params: {<%= singular_table_name %>: invalid_attributes}, session: valid_session
9595
expect(response).to be_successful
9696
end
9797
end
@@ -103,31 +103,31 @@
103103
skip("Add a hash of attributes valid for your model")
104104
}
105105
106-
it "updates the requested <%= ns_file_name %>" do
106+
it "updates the requested <%= singular_table_name %>" do
107107
<%= file_name %> = <%= class_name %>.create! valid_attributes
108-
put :update, params: {id: <%= file_name %>.to_param, <%= ns_file_name %>: new_attributes}, session: valid_session
108+
put :update, params: {id: <%= file_name %>.to_param, <%= singular_table_name %>: new_attributes}, session: valid_session
109109
<%= file_name %>.reload
110110
skip("Add assertions for updated state")
111111
end
112112
113-
it "redirects to the <%= ns_file_name %>" do
113+
it "redirects to the <%= singular_table_name %>" do
114114
<%= file_name %> = <%= class_name %>.create! valid_attributes
115-
put :update, params: {id: <%= file_name %>.to_param, <%= ns_file_name %>: valid_attributes}, session: valid_session
115+
put :update, params: {id: <%= file_name %>.to_param, <%= singular_table_name %>: valid_attributes}, session: valid_session
116116
expect(response).to redirect_to(<%= file_name %>)
117117
end
118118
end
119119
120120
context "with invalid params" do
121121
it "returns a success response (i.e. to display the 'edit' template)" do
122122
<%= file_name %> = <%= class_name %>.create! valid_attributes
123-
put :update, params: {id: <%= file_name %>.to_param, <%= ns_file_name %>: invalid_attributes}, session: valid_session
123+
put :update, params: {id: <%= file_name %>.to_param, <%= singular_table_name %>: invalid_attributes}, session: valid_session
124124
expect(response).to be_successful
125125
end
126126
end
127127
end
128128
129129
describe "DELETE #destroy" do
130-
it "destroys the requested <%= ns_file_name %>" do
130+
it "destroys the requested <%= singular_table_name %>" do
131131
<%= file_name %> = <%= class_name %>.create! valid_attributes
132132
expect {
133133
delete :destroy, params: {id: <%= file_name %>.to_param}, session: valid_session

spec/generators/rspec/scaffold/scaffold_generator_spec.rb

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,8 +121,20 @@
121121

122122
describe 'namespaced controller spec' do
123123
subject { file('spec/controllers/admin/posts_controller_spec.rb') }
124-
before { run_generator %w[admin/posts --controller_specs] }
125-
it { is_expected.to contain(/^RSpec.describe Admin::PostsController, #{type_metatag(:controller)}/) }
124+
125+
describe 'with no options' do
126+
before { run_generator %w[admin/posts --controller_specs] }
127+
it { is_expected.to contain(/^RSpec.describe Admin::PostsController, #{type_metatag(:controller)}/) }
128+
it { is_expected.to contain('post :create, params: {admin_post: valid_attributes}') }
129+
it { is_expected.to contain('Admin::Post.create') }
130+
end
131+
132+
describe 'with --model-name' do
133+
before { run_generator %w[admin/posts --model-name=post --controller_specs] }
134+
it { is_expected.to contain('post :create, params: {post: valid_attributes}') }
135+
it { is_expected.not_to contain('params: {admin_post: valid_attributes}') }
136+
it { is_expected.to contain(' Post.create') }
137+
end
126138
end
127139

128140
describe 'view specs' do

0 commit comments

Comments
 (0)