dry_crud 3.0.0 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/README.rdoc +1 -1
  3. data/VERSION +1 -1
  4. data/app/controllers/crud_controller.rb +10 -8
  5. data/app/controllers/dry_crud/generic_model.rb +6 -4
  6. data/app/controllers/dry_crud/nestable.rb +9 -11
  7. data/app/controllers/dry_crud/rememberable.rb +5 -1
  8. data/app/controllers/dry_crud/render_callbacks.rb +40 -19
  9. data/app/controllers/dry_crud/searchable.rb +40 -31
  10. data/app/controllers/dry_crud/sortable.rb +36 -26
  11. data/app/controllers/list_controller.rb +2 -2
  12. data/app/helpers/dry_crud/form/builder.rb +21 -13
  13. data/app/helpers/dry_crud/form/control.rb +8 -9
  14. data/app/helpers/dry_crud/table/actions.rb +6 -1
  15. data/app/helpers/dry_crud/table/builder.rb +4 -2
  16. data/app/helpers/dry_crud/table/col.rb +12 -1
  17. data/app/helpers/dry_crud/table/sorting.rb +7 -1
  18. data/app/helpers/form_helper.rb +7 -7
  19. data/app/helpers/format_helper.rb +3 -3
  20. data/app/helpers/i18n_helper.rb +3 -3
  21. data/app/helpers/utility_helper.rb +4 -1
  22. data/lib/dry_crud.rb +1 -2
  23. data/lib/dry_crud/engine.rb +5 -7
  24. data/lib/generators/dry_crud/dry_crud_generator.rb +3 -4
  25. data/lib/generators/dry_crud/dry_crud_generator_base.rb +6 -8
  26. data/lib/generators/dry_crud/file_generator.rb +1 -3
  27. data/lib/generators/dry_crud/templates/spec/controllers/crud_test_models_controller_spec.rb +8 -18
  28. data/lib/generators/dry_crud/templates/spec/helpers/form_helper_spec.rb +1 -1
  29. data/lib/generators/dry_crud/templates/spec/helpers/utility_helper_spec.rb +4 -4
  30. data/lib/generators/dry_crud/templates/spec/support/crud_controller_examples.rb +7 -17
  31. data/lib/generators/dry_crud/templates/spec/support/crud_controller_test_helper.rb +13 -29
  32. data/lib/generators/dry_crud/templates/test/controllers/crud_test_models_controller_test.rb +25 -44
  33. data/lib/generators/dry_crud/templates/test/helpers/custom_assertions_test.rb +0 -1
  34. data/lib/generators/dry_crud/templates/test/helpers/dry_crud/form/builder_test.rb +3 -4
  35. data/lib/generators/dry_crud/templates/test/helpers/dry_crud/table/builder_test.rb +0 -2
  36. data/lib/generators/dry_crud/templates/test/helpers/form_helper_test.rb +2 -1
  37. data/lib/generators/dry_crud/templates/test/helpers/format_helper_test.rb +1 -1
  38. data/lib/generators/dry_crud/templates/test/helpers/table_helper_test.rb +8 -17
  39. data/lib/generators/dry_crud/templates/test/helpers/utility_helper_test.rb +3 -0
  40. data/lib/generators/dry_crud/templates/test/support/crud_controller_test_helper.rb +27 -30
  41. data/lib/generators/dry_crud/templates/test/support/crud_test_helper.rb +11 -13
  42. data/lib/generators/dry_crud/templates/test/support/crud_test_model.rb +7 -3
  43. data/lib/generators/dry_crud/templates/test/support/crud_test_models_controller.rb +5 -9
  44. data/lib/generators/dry_crud/templates/test/support/custom_assertions.rb +1 -1
  45. metadata +10 -11
@@ -5,7 +5,6 @@ require 'generators/dry_crud/dry_crud_generator_base'
5
5
  module DryCrud
6
6
  # Copies one file of dry_crud to the rails application.
7
7
  class FileGenerator < ::DryCrudGeneratorBase
8
-
9
8
  desc "Copy one file from dry_crud to the application.\nFILENAME is a part of the name of the file to copy. Must match exactly one file."
10
9
 
11
10
  argument :filename, type: :string, desc: 'Name or part of the filename to copy. Must match exactly one file.'
@@ -36,6 +35,5 @@ module DryCrud
36
35
  end
37
36
  end.flatten
38
37
  end
39
-
40
38
  end
41
- end
39
+ end
@@ -6,7 +6,6 @@ require 'rails_helper'
6
6
  # of CrudController.
7
7
 
8
8
  describe CrudTestModelsController do
9
-
10
9
  include CrudTestHelper
11
10
 
12
11
  before(:all) do
@@ -64,11 +63,10 @@ describe CrudTestModelsController do
64
63
  end
65
64
 
66
65
  it 'session has empty list_params' do
67
- expect(session[:list_params]).to eq(Hash.new)
66
+ expect(session[:list_params]).to eq({})
68
67
  end
69
68
 
70
69
  it 'provides entries helper method' do
71
- is_expected.to render_template('index')
72
70
  expect(entries).to be(controller.send(:entries))
73
71
  end
74
72
  end
@@ -83,7 +81,7 @@ describe CrudTestModelsController do
83
81
 
84
82
  it 'session has query list param' do
85
83
  expect(session[:list_params]['/crud_test_models.html'])
86
- .to eq('q' => 'AAAA')
84
+ .to eq('q' => 'AAAA')
87
85
  end
88
86
  end
89
87
 
@@ -175,7 +173,7 @@ describe CrudTestModelsController do
175
173
  session[:list_params] = {}
176
174
  session[:list_params]['/crud_test_models'] =
177
175
  { 'q' => 'DDD', 'sort' => 'chatty', 'sort_dir' => 'desc' }
178
- get :index, returning: true
176
+ get :index, params: { returning: true }
179
177
  end
180
178
 
181
179
  it_is_expected_to_respond
@@ -194,7 +192,6 @@ describe CrudTestModelsController do
194
192
 
195
193
  context '.js', format: :js, combine: 'ijs' do
196
194
  it_is_expected_to_respond
197
- it_is_expected_to_assign_entries
198
195
  it { expect(response.body).to eq('index js') }
199
196
  end
200
197
  end
@@ -202,7 +199,7 @@ describe CrudTestModelsController do
202
199
  describe_action :get, :new do
203
200
  context 'plain', combine: 'new' do
204
201
  it 'assigns companions' do
205
- expect(assigns(:companions)).to be_present
202
+ expect(ivar(:companions)).to be_present
206
203
  end
207
204
 
208
205
  it 'calls two render callbacks' do
@@ -221,7 +218,7 @@ describe CrudTestModelsController do
221
218
  it { is_expected.to redirect_to(crud_test_models_path) }
222
219
 
223
220
  it 'does not set companions' do
224
- expect(assigns(:companions)).to be_nil
221
+ expect(ivar(:companions)).to be_nil
225
222
  end
226
223
  end
227
224
  end
@@ -244,7 +241,6 @@ describe CrudTestModelsController do
244
241
 
245
242
  context 'plain', combine: 'chcp' do
246
243
  it_is_expected_to_respond
247
- it_is_expected_to_render('new')
248
244
  it_is_expected_to_persist_entry(false)
249
245
  it_is_expected_to_have_flash(:alert)
250
246
 
@@ -253,7 +249,7 @@ describe CrudTestModelsController do
253
249
  end
254
250
 
255
251
  it 'assigns companions' do
256
- expect(assigns(:companions)).to be_present
252
+ expect(ivar(:companions)).to be_present
257
253
  end
258
254
 
259
255
  it 'calls the correct callbacks' do
@@ -291,13 +287,12 @@ describe CrudTestModelsController do
291
287
 
292
288
  context 'plain', combine: 'chip' do
293
289
  it_is_expected_to_respond
294
- it_is_expected_to_render('new')
295
290
  it_is_expected_to_persist_entry(false)
296
291
  it_is_expected_to_not_have_flash(:notice)
297
292
  it_is_expected_to_not_have_flash(:alert)
298
293
 
299
294
  it 'assigns companions' do
300
- expect(assigns(:companions)).to be_present
295
+ expect(ivar(:companions)).to be_present
301
296
  end
302
297
 
303
298
  it 'calls the correct callbacks' do
@@ -321,7 +316,7 @@ describe CrudTestModelsController do
321
316
  it_is_expected_to_render_json
322
317
 
323
318
  it 'does not assign companions' do
324
- expect(assigns(:companions)).to be_nil
319
+ expect(ivar(:companions)).to be_nil
325
320
  end
326
321
 
327
322
  it 'calls the correct callbacks' do
@@ -331,7 +326,6 @@ describe CrudTestModelsController do
331
326
  end
332
327
  end
333
328
  end
334
-
335
329
  end
336
330
 
337
331
  describe_action :get, :edit, id: true do
@@ -354,7 +348,6 @@ describe CrudTestModelsController do
354
348
 
355
349
  context '.html', combine: 'uhivp' do
356
350
  it_is_expected_to_respond
357
- it_is_expected_to_render('edit')
358
351
  it_is_expected_to_not_have_flash(:notice)
359
352
 
360
353
  it 'changes entry' do
@@ -383,7 +376,6 @@ describe CrudTestModelsController do
383
376
  end
384
377
  end
385
378
  end
386
-
387
379
  end
388
380
 
389
381
  describe_action :delete, :destroy, id: true do
@@ -437,7 +429,5 @@ describe CrudTestModelsController do
437
429
  end
438
430
  end
439
431
  end
440
-
441
432
  end
442
-
443
433
  end
@@ -192,7 +192,7 @@ describe FormHelper do
192
192
  end
193
193
 
194
194
  it do
195
- is_expected.to match(/input .*?type="datetime"
195
+ is_expected.to match(/input .*?type="datetime\-local"
196
196
  .*?name="crud_test_model\[last_seen\]"/x)
197
197
  end
198
198
 
@@ -64,10 +64,10 @@ describe UtilityHelper do
64
64
 
65
65
  describe '#default_crud_attrs' do
66
66
  it 'do not contain id and password' do
67
- expect(default_crud_attrs).to eq([
68
- :name, :email, :whatever, :children, :companion_id, :rating, :income,
69
- :birthdate, :gets_up_at, :last_seen, :human, :remarks,
70
- :created_at, :updated_at])
67
+ expect(default_crud_attrs).to eq(
68
+ [:name, :email, :whatever, :children, :companion_id, :rating, :income,
69
+ :birthdate, :gets_up_at, :last_seen, :human, :remarks,
70
+ :created_at, :updated_at])
71
71
  end
72
72
  end
73
73
 
@@ -27,8 +27,9 @@ shared_examples 'crud controller' do |options|
27
27
  let(:model_identifier) { controller.model_identifier }
28
28
  let(:test_params) { scope_params }
29
29
  let(:sort_column) { model_class.column_names.first }
30
- let(:entry) { assigns(controller.send(:ivar_name, model_class)) }
31
- let(:entries) { assigns(controller.send(:ivar_name, model_class).pluralize) }
30
+ let(:ivar_name) { controller.send(:ivar_name, model_class) }
31
+ let(:entry) { ivar(ivar_name) }
32
+ let(:entries) { ivar(ivar_name.pluralize) }
32
33
  let(:search_value) do
33
34
  field = controller.search_columns.first
34
35
  val = test_entry[field].to_s
@@ -53,8 +54,6 @@ shared_examples 'crud controller' do |options|
53
54
  unless: skip?(options, %w(index html plain)),
54
55
  combine: 'ihp' do
55
56
  it_is_expected_to_respond
56
- it_is_expected_to_assign_entries
57
- it_is_expected_to_render
58
57
  end
59
58
 
60
59
  context 'search',
@@ -81,7 +80,7 @@ shared_examples 'crud controller' do |options|
81
80
  it_is_expected_to_respond
82
81
 
83
82
  it 'has sorted entries' do
84
- sorted = entries.sort_by(&(sort_column.to_sym))
83
+ sorted = entries.sort_by(&sort_column.to_sym)
85
84
  expect(entries).to eq(sorted)
86
85
  end
87
86
  end
@@ -94,7 +93,7 @@ shared_examples 'crud controller' do |options|
94
93
  it_is_expected_to_respond
95
94
 
96
95
  it 'has sorted entries' do
97
- sorted = entries.sort_by(&(sort_column.to_sym))
96
+ sorted = entries.sort_by(&sort_column.to_sym)
98
97
  expect(entries).to eq(sorted.reverse)
99
98
  end
100
99
  end
@@ -106,7 +105,6 @@ shared_examples 'crud controller' do |options|
106
105
  unless: skip?(options, %w(index json)),
107
106
  combine: 'ij' do
108
107
  it_is_expected_to_respond
109
- it_is_expected_to_assign_entries
110
108
  it { expect(response.body).to start_with('[{') }
111
109
  end
112
110
  end
@@ -123,8 +121,6 @@ shared_examples 'crud controller' do |options|
123
121
  unless: skip?(options, %w(show html plain)),
124
122
  combine: 'sh' do
125
123
  it_is_expected_to_respond
126
- it_is_expected_to_assign_entry
127
- it_is_expected_to_render
128
124
  end
129
125
 
130
126
  context 'with non-existing id',
@@ -134,7 +130,7 @@ shared_examples 'crud controller' do |options|
134
130
 
135
131
  it 'raises RecordNotFound', perform_request: false do
136
132
  expect { perform_request }
137
- .to raise_error(ActiveRecord::RecordNotFound)
133
+ .to raise_error(ActiveRecord::RecordNotFound)
138
134
  end
139
135
  end
140
136
  end
@@ -144,7 +140,6 @@ shared_examples 'crud controller' do |options|
144
140
  unless: skip?(options, %w(show json)),
145
141
  combine: 'sj' do
146
142
  it_is_expected_to_respond
147
- it_is_expected_to_assign_entry
148
143
  it_is_expected_to_render_json
149
144
  end
150
145
  end
@@ -155,7 +150,6 @@ shared_examples 'crud controller' do |options|
155
150
  unless: skip?(options, %w(new plain)),
156
151
  combine: 'new' do
157
152
  it_is_expected_to_respond
158
- it_is_expected_to_render
159
153
  it_is_expected_to_persist_entry(false)
160
154
  end
161
155
 
@@ -191,7 +185,6 @@ shared_examples 'crud controller' do |options|
191
185
  failing: true,
192
186
  unless: skip?(options, %w(create html invalid)),
193
187
  combine: 'chi' do
194
- it_is_expected_to_render('new')
195
188
  it_is_expected_to_persist_entry(false)
196
189
  it_is_expected_to_set_attrs(:new)
197
190
  it_is_expected_to_not_have_flash(:notice)
@@ -228,8 +221,6 @@ shared_examples 'crud controller' do |options|
228
221
  unless: skip?(options, %w(edit)),
229
222
  combine: 'edit' do
230
223
  it_is_expected_to_respond
231
- it_is_expected_to_render
232
- it_is_expected_to_assign_entry
233
224
  end
234
225
 
235
226
  describe_action :put, :update,
@@ -257,7 +248,6 @@ shared_examples 'crud controller' do |options|
257
248
  failing: true,
258
249
  unless: skip?(options, %w(update html invalid)),
259
250
  combine: 'uhi' do
260
- it_is_expected_to_render('edit')
261
251
  it_is_expected_to_set_attrs(:edit)
262
252
  it_is_expected_to_not_have_flash(:notice)
263
253
  end
@@ -291,7 +281,7 @@ shared_examples 'crud controller' do |options|
291
281
  id: true,
292
282
  unless: skip?(options, %w(destroy)) do
293
283
 
294
- it 'removes entry from database', perform_request: false do
284
+ it 'removes entry from database', perform_request: false do
295
285
  expect { perform_request }.to change { model_class.count }.by(-1)
296
286
  end
297
287
 
@@ -9,13 +9,14 @@ module CrudControllerTestHelper
9
9
  def perform_request
10
10
  m = RSpec.current_example.metadata
11
11
  example_params = respond_to?(:params) ? send(:params) : {}
12
- params = scope_params.merge(format: m[:format])
13
- params.merge!(id: test_entry.id) if m[:id]
12
+ params = scope_params.dup
13
+ params[:format] = m[:format] if m[:format]
14
+ params[:id] = test_entry.id if m[:id]
14
15
  params.merge!(example_params)
15
16
  if m[:method] == :get && m[:format] == :js
16
- xhr(:get, m[:action], params)
17
+ get m[:action], params: params, xhr: true
17
18
  else
18
- send(m[:method], m[:action], params)
19
+ send(m[:method], m[:action], params: params)
19
20
  end
20
21
  end
21
22
 
@@ -56,6 +57,10 @@ module CrudControllerTestHelper
56
57
  @request = @@current_request
57
58
  end
58
59
 
60
+ def ivar(name)
61
+ controller.instance_variable_get("@#{name}")
62
+ end
63
+
59
64
  # The params defining the nesting of the test entry.
60
65
  def scope_params
61
66
  params = {}
@@ -79,7 +84,8 @@ module CrudControllerTestHelper
79
84
  # Tests whether this action is configured to be skipped.
80
85
  def describe_action(method, action, metadata = {}, &block)
81
86
  action_defined = described_class.instance_methods
82
- .map(&:to_s).include?(action.to_s)
87
+ .map(&:to_s)
88
+ .include?(action.to_s)
83
89
  describe("#{method.to_s.upcase} #{action}",
84
90
  { if: action_defined,
85
91
  method: method,
@@ -95,7 +101,7 @@ module CrudControllerTestHelper
95
101
  skips = [skips] if skips.blank? || !skips.first.is_a?(Array)
96
102
 
97
103
  skips.flatten.present? &&
98
- skips.any? { |skip| skip == contexts.take(skip.size) }
104
+ skips.any? { |skip| skip == contexts.take(skip.size) }
99
105
  end
100
106
 
101
107
  # Test the response status, default 200.
@@ -103,29 +109,6 @@ module CrudControllerTestHelper
103
109
  it { expect(response.status).to eq(status) }
104
110
  end
105
111
 
106
- # Test that entries are assigned.
107
- def it_is_expected_to_assign_entries
108
- it 'assigns entries' do
109
- expect(entries).to be_present
110
- end
111
- end
112
-
113
- # Test that entry is assigned.
114
- def it_is_expected_to_assign_entry
115
- it 'assigns entry' do
116
- expect(entry).to eq(test_entry)
117
- end
118
- end
119
-
120
- # Test that the given template or the main template of the action under
121
- # test is rendered.
122
- def it_is_expected_to_render(template = nil)
123
- it do
124
- template ||= RSpec.current_example.metadata[:action]
125
- is_expected.to render_template(template)
126
- end
127
- end
128
-
129
112
  # Test that a json response is rendered.
130
113
  def it_is_expected_to_render_json
131
114
  it { expect(response.body).to start_with('{') }
@@ -147,6 +130,7 @@ module CrudControllerTestHelper
147
130
  def it_is_expected_to_redirect_to_index
148
131
  it do
149
132
  is_expected.to redirect_to scope_params.merge(action: 'index',
133
+ id: nil,
150
134
  returning: true)
151
135
  end
152
136
  end
@@ -35,12 +35,10 @@ class CrudTestModelsControllerTest < ActionController::TestCase
35
35
  assert_equal 6, entries.size
36
36
  assert_equal entries.sort_by(&:name), entries
37
37
  assert_equal({}, session[:list_params])
38
- assert_equal entries, assigns(:crud_test_models)
39
- assert_respond_to assigns(:crud_test_models), :klass
40
38
  end
41
39
 
42
40
  def test_index_js
43
- xhr :get, :index, test_params
41
+ get :index, params: test_params, xhr: true
44
42
  assert_response :success
45
43
  assert_equal 'index js', @response.body
46
44
  assert entries.present?
@@ -53,18 +51,16 @@ class CrudTestModelsControllerTest < ActionController::TestCase
53
51
  end
54
52
 
55
53
  def test_index_with_custom_options
56
- get :index, filter: true
54
+ get :index, params: { filter: true }
57
55
  assert_response :success
58
- assert_template 'index'
59
56
  assert entries.present?
60
57
  assert_equal 2, entries.size
61
58
  assert_equal entries.sort_by(&:children).reverse, entries
62
59
  end
63
60
 
64
61
  def test_index_search_with_custom_options
65
- get :index, q: 'DDD', filter: true
62
+ get :index, params: { q: 'DDD', filter: true }
66
63
  assert_response :success
67
- assert_template 'index'
68
64
  assert entries.present?
69
65
  assert_equal 1, entries.size
70
66
  assert_equal [CrudTestModel.find_by_name('BBBBB')], entries
@@ -72,9 +68,8 @@ class CrudTestModelsControllerTest < ActionController::TestCase
72
68
  end
73
69
 
74
70
  def test_sort_given_column
75
- get :index, sort: 'children', sort_dir: 'asc'
71
+ get :index, params: { sort: 'children', sort_dir: 'asc' }
76
72
  assert_response :success
77
- assert_template 'index'
78
73
  assert entries.present?
79
74
  assert_equal 6, entries.size
80
75
  assert_equal CrudTestModel.all.sort_by(&:children), entries
@@ -83,9 +78,8 @@ class CrudTestModelsControllerTest < ActionController::TestCase
83
78
  end
84
79
 
85
80
  def test_sort_virtual_column
86
- get :index, sort: 'chatty', sort_dir: 'desc'
81
+ get :index, params: { sort: 'chatty', sort_dir: 'desc' }
87
82
  assert_response :success
88
- assert_template 'index'
89
83
  assert entries.present?
90
84
  assert_equal 6, entries.size
91
85
  assert_equal({ 'sort' => 'chatty', 'sort_dir' => 'desc' },
@@ -102,9 +96,8 @@ class CrudTestModelsControllerTest < ActionController::TestCase
102
96
  end
103
97
 
104
98
  def test_sort_with_search
105
- get :index, q: 'DDD', sort: 'chatty', sort_dir: 'asc'
99
+ get :index, params: { q: 'DDD', sort: 'chatty', sort_dir: 'asc' }
106
100
  assert_response :success
107
- assert_template 'index'
108
101
  assert entries.present?
109
102
  assert_equal 3, entries.size
110
103
  assert_equal %w(CCCCC DDDDD BBBBB), entries.map(&:name)
@@ -117,9 +110,8 @@ class CrudTestModelsControllerTest < ActionController::TestCase
117
110
  session[:list_params]['/crud_test_models'] = { 'q' => 'DDD',
118
111
  'sort' => 'chatty',
119
112
  'sort_dir' => 'desc' }
120
- get :index, returning: true
113
+ get :index, params: { returning: true }
121
114
  assert_response :success
122
- assert_template 'index'
123
115
  assert entries.present?
124
116
  assert_equal 3, entries.size
125
117
  assert_equal %w(BBBBB DDDDD CCCCC), entries.map(&:name)
@@ -130,19 +122,12 @@ class CrudTestModelsControllerTest < ActionController::TestCase
130
122
 
131
123
  def test_new
132
124
  super
133
- assert assigns(:companions)
134
- assert_equal @controller.send(:entry), assigns(:crud_test_model)
135
125
  assert_equal [:before_render_new, :before_render_form],
136
126
  @controller.called_callbacks
137
127
  end
138
128
 
139
- def test_show
140
- super
141
- assert_equal @controller.send(:entry), assigns(:crud_test_model)
142
- end
143
-
144
129
  def test_show_with_custom
145
- get :show, test_params(id: crud_test_models(:BBBBB).id)
130
+ get :show, params: test_params(id: crud_test_models(:BBBBB).id)
146
131
  assert_response :success
147
132
  assert_equal 'custom html', @response.body
148
133
  end
@@ -157,7 +142,6 @@ class CrudTestModelsControllerTest < ActionController::TestCase
157
142
 
158
143
  def test_edit
159
144
  super
160
- assert_equal @controller.send(:entry), assigns(:crud_test_model)
161
145
  assert_equal [:before_render_edit, :before_render_form],
162
146
  @controller.called_callbacks
163
147
  end
@@ -168,7 +152,6 @@ class CrudTestModelsControllerTest < ActionController::TestCase
168
152
  model: 'Crud Test Model <i>foo</i>'),
169
153
  flash[:notice]
170
154
  assert flash[:alert].blank?
171
- assert_equal @controller.send(:entry), assigns(:crud_test_model)
172
155
  assert_equal [:before_update, :before_save, :after_save, :after_update],
173
156
  @controller.called_callbacks
174
157
  end
@@ -178,18 +161,17 @@ class CrudTestModelsControllerTest < ActionController::TestCase
178
161
  assert_equal [:before_destroy, :after_destroy],
179
162
  @controller.called_callbacks
180
163
  assert_equal I18n.t('crud.destroy.flash.success',
181
- model: 'Crud Test Model <i>AAAAA</i>'),
164
+ model: 'Crud Test Model <i>AAAAA</i>'),
182
165
  flash[:notice]
183
166
  end
184
167
 
185
168
  def test_create_with_before_callback
186
169
  assert_no_difference('CrudTestModel.count') do
187
- post :create, crud_test_model: { name: 'illegal', children: 2 }
170
+ post :create,
171
+ params: { crud_test_model: { name: 'illegal', children: 2 } }
188
172
  end
189
173
  assert_response :success
190
- assert_template 'new'
191
174
  assert entry.new_record?
192
- assert assigns(:companions).present?
193
175
  assert flash[:alert].present?
194
176
  assert_equal 'illegal', entry.name
195
177
  assert_equal [:before_render_new, :before_render_form],
@@ -199,7 +181,8 @@ class CrudTestModelsControllerTest < ActionController::TestCase
199
181
  def test_create_with_before_callback_redirect
200
182
  @controller.should_redirect = true
201
183
  assert_no_difference('CrudTestModel.count') do
202
- post :create, crud_test_model: { name: 'illegal', children: 2 }
184
+ post :create,
185
+ params: { crud_test_model: { name: 'illegal', children: 2 } }
203
186
  end
204
187
  assert_redirected_to action: 'index'
205
188
  assert_nil @controller.called_callbacks
@@ -209,17 +192,14 @@ class CrudTestModelsControllerTest < ActionController::TestCase
209
192
  @controller.should_redirect = true
210
193
  get :new
211
194
  assert_redirected_to action: 'index'
212
- assert_nil assigns(:companions)
213
195
  end
214
196
 
215
197
  def test_create_with_failure
216
198
  assert_no_difference('CrudTestModel.count') do
217
- post :create, crud_test_model: { children: 2 }
199
+ post :create, params: { crud_test_model: { children: 2 } }
218
200
  end
219
201
  assert_response :success
220
- assert_template 'new'
221
202
  assert entry.new_record?
222
- assert assigns(:companions)
223
203
  assert flash[:notice].blank?, flash[:notice].to_s
224
204
  assert flash[:alert].blank?, flash[:alert].to_s
225
205
  assert entry.name.blank?
@@ -230,7 +210,7 @@ class CrudTestModelsControllerTest < ActionController::TestCase
230
210
 
231
211
  def test_create_with_failure_json
232
212
  assert_no_difference('CrudTestModel.count') do
233
- post :create, crud_test_model: { children: 2 }, format: 'json'
213
+ post :create, params: { crud_test_model: { children: 2 }, format: 'json' }
234
214
  end
235
215
  assert_response :unprocessable_entity
236
216
  assert entry.new_record?
@@ -238,9 +218,8 @@ class CrudTestModelsControllerTest < ActionController::TestCase
238
218
  end
239
219
 
240
220
  def test_update_with_failure
241
- put :update, id: test_entry.id, crud_test_model: { rating: 20 }
221
+ put :update, params: { id: test_entry.id, crud_test_model: { rating: 20 } }
242
222
  assert_response :success
243
- assert_template 'edit'
244
223
  assert entry.changed?
245
224
  assert flash[:notice].blank?
246
225
  assert flash[:alert].blank?
@@ -251,9 +230,10 @@ class CrudTestModelsControllerTest < ActionController::TestCase
251
230
  end
252
231
 
253
232
  def test_update_with_failure_json
254
- put :update, id: test_entry.id,
255
- crud_test_model: { rating: 20 },
256
- format: 'json'
233
+ put :update,
234
+ params: { id: test_entry.id,
235
+ crud_test_model: { rating: 20 },
236
+ format: 'json' }
257
237
  assert_response :unprocessable_entity
258
238
  assert entry.changed?
259
239
  assert flash[:notice].blank?
@@ -265,7 +245,7 @@ class CrudTestModelsControllerTest < ActionController::TestCase
265
245
  assert_no_difference("#{model_class.name}.count") do
266
246
  @request.env['HTTP_REFERER'] =
267
247
  crud_test_model_url(crud_test_models(:BBBBB))
268
- delete :destroy, test_params(id: crud_test_models(:BBBBB).id)
248
+ delete :destroy, params: test_params(id: crud_test_models(:BBBBB).id)
269
249
  end
270
250
  assert_redirected_to_show(entry)
271
251
  assert_match(/companion/, flash[:alert])
@@ -276,7 +256,7 @@ class CrudTestModelsControllerTest < ActionController::TestCase
276
256
  e = crud_test_models(:AAAAA)
277
257
  e.update_attribute :name, 'illegal'
278
258
  assert_no_difference("#{model_class.name}.count") do
279
- delete :destroy, test_params(id: e.id)
259
+ delete :destroy, params: test_params(id: e.id)
280
260
  end
281
261
  assert_redirected_to_index
282
262
  assert_match(/illegal name/, flash[:alert])
@@ -285,8 +265,8 @@ class CrudTestModelsControllerTest < ActionController::TestCase
285
265
 
286
266
  def test_destroy_failure_json
287
267
  assert_no_difference("#{model_class.name}.count") do
288
- delete :destroy, test_params(id: crud_test_models(:BBBBB).id,
289
- format: 'json')
268
+ delete :destroy, params: test_params(id: crud_test_models(:BBBBB).id,
269
+ format: 'json')
290
270
  end
291
271
  assert_response :unprocessable_entity
292
272
  assert flash[:notice].blank?
@@ -323,4 +303,5 @@ class CrudTestModelsControllerTest < ActionController::TestCase
323
303
  human: true,
324
304
  remarks: "some custom\n\tremarks" }
325
305
  end
306
+
326
307
  end