rocketjob_mission_control 4.3.0 → 6.0.0.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/Rakefile +12 -13
  4. data/app/assets/config/manifest.js +3 -0
  5. data/app/assets/javascripts/rocket_job_mission_control/application.js +2 -4
  6. data/app/assets/javascripts/rocket_job_mission_control/nested_fields.js +112 -0
  7. data/app/assets/stylesheets/rocket_job_mission_control/{application.scss → application.css} +9 -9
  8. data/app/assets/stylesheets/rocket_job_mission_control/base.css +420 -0
  9. data/app/assets/stylesheets/rocket_job_mission_control/{callout.scss → callout.css} +50 -52
  10. data/app/assets/stylesheets/rocket_job_mission_control/jobs.css +57 -0
  11. data/app/assets/stylesheets/rocket_job_mission_control/worker_processes.css +7 -0
  12. data/app/controllers/rocket_job_mission_control/application_controller.rb +2 -3
  13. data/app/controllers/rocket_job_mission_control/dirmon_entries_controller.rb +53 -33
  14. data/app/controllers/rocket_job_mission_control/jobs_controller.rb +78 -37
  15. data/app/controllers/rocket_job_mission_control/servers_controller.rb +32 -38
  16. data/app/datatables/rocket_job_mission_control/abstract_datatable.rb +8 -6
  17. data/app/datatables/rocket_job_mission_control/active_workers_datatable.rb +5 -5
  18. data/app/datatables/rocket_job_mission_control/dirmon_entries_datatable.rb +4 -4
  19. data/app/datatables/rocket_job_mission_control/jobs_datatable.rb +55 -62
  20. data/app/datatables/rocket_job_mission_control/servers_datatable.rb +13 -14
  21. data/app/helpers/rocket_job_mission_control/application_helper.rb +70 -52
  22. data/app/helpers/rocket_job_mission_control/dirmon_entries_helper.rb +8 -0
  23. data/app/helpers/rocket_job_mission_control/jobs_helper.rb +80 -13
  24. data/app/helpers/rocket_job_mission_control/pagination_helper.rb +1 -1
  25. data/app/helpers/rocket_job_mission_control/servers_helper.rb +6 -6
  26. data/app/helpers/rocket_job_mission_control/slices_helper.rb +2 -4
  27. data/app/models/rocket_job_mission_control/access_policy.rb +3 -4
  28. data/app/models/rocket_job_mission_control/authorization.rb +3 -2
  29. data/app/models/rocket_job_mission_control/dirmon_sanitizer.rb +68 -0
  30. data/app/models/rocket_job_mission_control/job_sanitizer.rb +48 -16
  31. data/app/models/rocket_job_mission_control/query.rb +2 -5
  32. data/app/views/rocket_job_mission_control/dirmon_entries/_form.html.erb +78 -42
  33. data/app/views/rocket_job_mission_control/dirmon_entries/_input_categories.html.erb +59 -0
  34. data/app/views/rocket_job_mission_control/dirmon_entries/_input_category_fields.html.erb +56 -0
  35. data/app/views/rocket_job_mission_control/dirmon_entries/_output_categories.html.erb +44 -0
  36. data/app/views/rocket_job_mission_control/dirmon_entries/_output_category_fields.html.erb +36 -0
  37. data/app/views/rocket_job_mission_control/dirmon_entries/_status.html.erb +22 -16
  38. data/app/views/rocket_job_mission_control/dirmon_entries/copy.html.erb +4 -0
  39. data/app/views/rocket_job_mission_control/dirmon_entries/edit.html.erb +7 -3
  40. data/app/views/rocket_job_mission_control/dirmon_entries/show.html.erb +8 -5
  41. data/app/views/rocket_job_mission_control/jobs/_attributes.html.erb +89 -0
  42. data/app/views/rocket_job_mission_control/jobs/_dates.html.erb +39 -0
  43. data/app/views/rocket_job_mission_control/jobs/_details.html.erb +86 -0
  44. data/app/views/rocket_job_mission_control/jobs/_exception.html.erb +33 -0
  45. data/app/views/rocket_job_mission_control/jobs/_exceptions.html.erb +1 -1
  46. data/app/views/rocket_job_mission_control/jobs/_input_categories.html.erb +126 -0
  47. data/app/views/rocket_job_mission_control/jobs/_input_category_fields.html.erb +56 -0
  48. data/app/views/rocket_job_mission_control/jobs/_output_categories.html.erb +60 -0
  49. data/app/views/rocket_job_mission_control/jobs/_output_category_fields.html.erb +36 -0
  50. data/app/views/rocket_job_mission_control/jobs/_retryable.html.erb +27 -0
  51. data/app/views/rocket_job_mission_control/jobs/_status.html.erb +21 -49
  52. data/app/views/rocket_job_mission_control/jobs/edit.html.erb +28 -0
  53. data/app/views/rocket_job_mission_control/jobs/edit_slice.html.erb +1 -1
  54. data/app/views/rocket_job_mission_control/jobs/exception.html.erb +1 -1
  55. data/app/views/rocket_job_mission_control/jobs/index.html.erb +24 -18
  56. data/app/views/rocket_job_mission_control/jobs/show.html.erb +32 -58
  57. data/app/views/rocket_job_mission_control/jobs/view_slice.html.erb +4 -4
  58. data/app/views/rocket_job_mission_control/servers/index.html.erb +2 -2
  59. data/config/initializers/assets.rb +5 -8
  60. data/config/locales/en.yml +3 -0
  61. data/config/routes.rb +24 -21
  62. data/lib/rocket_job_mission_control/engine.rb +6 -9
  63. data/lib/rocket_job_mission_control/version.rb +1 -1
  64. data/lib/rocketjob_mission_control.rb +1 -1
  65. data/test/compare_hashes.rb +1 -2
  66. data/test/controllers/rocket_job_mission_control/application_controller_test.rb +13 -21
  67. data/test/controllers/rocket_job_mission_control/dirmon_entries_controller_test.rb +124 -157
  68. data/test/controllers/rocket_job_mission_control/jobs_controller_test.rb +103 -127
  69. data/test/controllers/rocket_job_mission_control/servers_controller_test.rb +66 -103
  70. data/test/helpers/rocket_job_mission_control/application_helper_test.rb +13 -14
  71. data/test/helpers/rocket_job_mission_control/jobs_helper_test.rb +31 -31
  72. data/test/helpers/rocket_job_mission_control/pagination_helper_test.rb +7 -9
  73. data/test/helpers/rocket_job_mission_control/servers_helper_test.rb +15 -15
  74. data/test/helpers/rocket_job_mission_control/slices_helper_test.rb +8 -10
  75. data/test/models/rocket_job_mission_control/dirmon_sanitizer_test.rb +146 -0
  76. data/test/models/rocket_job_mission_control/job_sanitizer_test.rb +47 -42
  77. data/test/models/rocket_job_mission_control/query_test.rb +26 -28
  78. data/test/test_helper.rb +9 -15
  79. data/vendor/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  80. data/vendor/assets/fonts/glyphicons-halflings-regular.svg +288 -0
  81. data/vendor/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  82. data/vendor/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  83. data/vendor/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
  84. data/vendor/assets/javascripts/datatables.min.js +881 -0
  85. data/vendor/assets/stylesheets/bootstrap.min.css.erb +6 -0
  86. data/vendor/assets/stylesheets/datatables.min.css +141 -0
  87. metadata +61 -65
  88. data/app/assets/stylesheets/rocket_job_mission_control/base.scss +0 -436
  89. data/app/assets/stylesheets/rocket_job_mission_control/bootstrap_and_overrides.scss +0 -488
  90. data/app/assets/stylesheets/rocket_job_mission_control/jobs.scss +0 -72
  91. data/app/assets/stylesheets/rocket_job_mission_control/worker_processes.scss +0 -9
  92. data/vendor/assets/stylesheets/bootstrap.min.css +0 -6
@@ -1,9 +1,8 @@
1
- require_relative '../../test_helper'
2
- require_relative '../../compare_hashes'
1
+ require_relative "../../test_helper"
2
+ require_relative "../../compare_hashes"
3
3
 
4
4
  module RocketJobMissionControl
5
5
  class JobsControllerTest < ActionController::TestCase
6
-
7
6
  class PausableJob < RocketJob::Job
8
7
  self.pausable = true
9
8
 
@@ -27,11 +26,12 @@ module RocketJobMissionControl
27
26
  end
28
27
 
29
28
  let :failed_job do
30
- job = KaboomBatchJob.new(slice_size: 1)
29
+ job = KaboomBatchJob.new
30
+ job.input_category.slice_size = 1
31
31
  job.upload do |stream|
32
- stream << 'first record'
33
- stream << 'second record'
34
- stream << 'third record'
32
+ stream << "first record"
33
+ stream << "second record"
34
+ stream << "third record"
35
35
  end
36
36
  job.save!
37
37
 
@@ -49,29 +49,27 @@ module RocketJobMissionControl
49
49
 
50
50
  let :one_job_for_every_state do
51
51
  job_states.collect do |state|
52
- RocketJob::Jobs::SimpleJob.create!(state: state, worker_name: 'worker', started_at: (Time.now - 0.5))
52
+ RocketJob::Jobs::SimpleJob.create!(state: state, worker_name: "worker", started_at: (Time.now - 0.5))
53
53
  end
54
54
  end
55
55
 
56
- [:pause, :resume, :abort, :retry, :fail].each do |state|
56
+ %i[pause resume abort retry fail].each do |state|
57
57
  describe "PATCH ##{state}" do
58
- describe 'with an invalid job id' do
58
+ describe "with an invalid job id" do
59
59
  before do
60
- params = {id: 42, job: {id: 42, priority: 12}}
61
- params = {params: params} if Rails.version.to_i >= 5
62
- patch state, params
60
+ patch state, params: {id: 42, job: {id: 42, priority: 12}}
63
61
  end
64
62
 
65
- it 'redirects' do
63
+ it "redirects" do
66
64
  assert_redirected_to jobs_path
67
65
  end
68
66
 
69
- it 'adds a flash alert message' do
70
- assert_equal I18n.t(:failure, scope: [:job, :find], id: 42), flash[:alert]
67
+ it "adds a flash alert message" do
68
+ assert_equal I18n.t(:failure, scope: %i[job find], id: 42), flash[:alert]
71
69
  end
72
70
  end
73
71
 
74
- describe 'with a valid job id' do
72
+ describe "with a valid job id" do
75
73
  before do
76
74
  case state
77
75
  when :pause, :fail, :abort
@@ -82,69 +80,62 @@ module RocketJobMissionControl
82
80
  pausable_job.fail!
83
81
  end
84
82
  params = {id: pausable_job.id, job: {id: pausable_job.id, priority: pausable_job.priority}}
85
- params = {params: params} if Rails.version.to_i >= 5
86
- patch state, params
83
+ patch state, params: params
87
84
  end
88
85
 
89
- it 'redirects to the job' do
86
+ it "redirects to the job" do
90
87
  assert_redirected_to job_path(pausable_job.id)
91
88
  end
92
89
 
93
- it 'transitions the job' do
90
+ it "transitions the job" do
94
91
  refute_equal state, pausable_job.state
95
92
  end
96
93
  end
97
94
  end
98
95
  end
99
96
 
100
- describe 'PATCH #run_now' do
97
+ describe "PATCH #run_now" do
101
98
  let(:scheduled_job) { RocketJob::Jobs::SimpleJob.create!(run_at: 2.days.from_now) }
102
99
 
103
100
  before do
104
- params = {id: scheduled_job.id}
105
- params = {params: params} if Rails.version.to_i >= 5
106
- patch :run_now, params
101
+ patch :run_now, params: {id: scheduled_job.id}
107
102
  end
108
103
 
109
- it 'redirects to the job path' do
104
+ it "redirects to the job path" do
110
105
  assert_redirected_to job_path(scheduled_job.id)
111
106
  end
112
107
 
113
- it 'updates run_at' do
108
+ it "updates run_at" do
114
109
  assert_nil scheduled_job.reload.run_at
115
110
  end
116
111
  end
117
112
 
118
-
119
113
  describe "PATCH #update" do
120
- describe 'with an invalid job id' do
114
+ describe "with an invalid job id" do
121
115
  before do
122
- params = {id: 42, job: {id: 42, priority: 12}}
123
- params = {params: params} if Rails.version.to_i >= 5
124
- patch :update, params
116
+ patch :update, params: {id: 42, job: {id: 42, priority: 12}}
125
117
  end
126
118
 
127
- it 'redirects' do
119
+ it "redirects" do
128
120
  assert_redirected_to jobs_path
129
121
  end
130
122
 
131
- it 'adds a flash alert message' do
132
- assert_equal I18n.t(:failure, scope: [:job, :find], id: 42), flash[:alert]
123
+ it "adds a flash alert message" do
124
+ assert_equal I18n.t(:failure, scope: %i[job find], id: 42), flash[:alert]
133
125
  end
134
126
  end
135
127
 
136
128
  describe "with a valid job id" do
137
129
  before do
138
- params = {id: job.id, job: {id: job.id, priority: 12, blah: 23, description: '', log_level: '', state: 'failed'}}
139
- params = {params: params} if Rails.version.to_i >= 5
140
- patch :update, params
130
+ params = {id: job.id, job: {id: job.id, priority: 12, blah: 23, description: "", log_level: "", state: "failed"}}
131
+ patch :update, params: params
141
132
  end
142
133
 
143
- it 'redirects to the job' do
134
+ it "redirects to the job" do
144
135
  assert_redirected_to job_path(job.id)
145
136
  end
146
137
 
147
- it 'updates the job correctly' do
138
+ it "updates the job correctly" do
148
139
  assert_equal 12, job.reload.priority
149
140
  end
150
141
 
@@ -157,97 +148,87 @@ module RocketJobMissionControl
157
148
  end
158
149
  end
159
150
 
160
- describe 'GET #show' do
161
- describe 'with an invalid job id' do
151
+ describe "GET #show" do
152
+ describe "with an invalid job id" do
162
153
  before do
163
- params = {id: 42}
164
- params = {params: params} if Rails.version.to_i >= 5
165
- get :show, params
154
+ get :show, params: {id: 42}
166
155
  end
167
156
 
168
- it 'redirects' do
157
+ it "redirects" do
169
158
  assert_redirected_to jobs_path
170
159
  end
171
160
 
172
- it 'adds a flash alert message' do
173
- assert_equal I18n.t(:failure, scope: [:job, :find], id: 42), flash[:alert]
161
+ it "adds a flash alert message" do
162
+ assert_equal I18n.t(:failure, scope: %i[job find], id: 42), flash[:alert]
174
163
  end
175
164
  end
176
165
 
177
166
  describe "with a valid job id" do
178
167
  before do
179
- params = {id: job.id}
180
- params = {params: params} if Rails.version.to_i >= 5
181
- get :show, params
168
+ get :show, params: {id: job.id}
182
169
  end
183
170
 
184
- it 'succeeds' do
171
+ it "succeeds" do
185
172
  assert_response :success
186
173
  end
187
174
 
188
- it 'assigns the job' do
175
+ it "assigns the job" do
189
176
  assert_equal job.id, assigns(:job).id
190
177
  end
191
178
  end
192
179
  end
193
180
 
194
- describe 'GET #exception' do
195
- describe 'with an invalid job id' do
181
+ describe "GET #exception" do
182
+ describe "with an invalid job id" do
196
183
  before do
197
- params = {id: 42}
198
- params = {params: params} if Rails.version.to_i >= 5
199
- get :exception, params
184
+ get :exception, params: {id: 42}
200
185
  end
201
186
 
202
- it 'redirects' do
187
+ it "redirects" do
203
188
  assert_redirected_to jobs_path
204
189
  end
205
190
 
206
- it 'adds a flash alert message' do
207
- assert_equal I18n.t(:failure, scope: [:job, :find], id: 42), flash[:alert]
191
+ it "adds a flash alert message" do
192
+ assert_equal I18n.t(:failure, scope: %i[job find], id: 42), flash[:alert]
208
193
  end
209
194
  end
210
195
 
211
- describe 'with a valid job id' do
212
- describe 'without an exception' do
196
+ describe "with a valid job id" do
197
+ describe "without an exception" do
213
198
  before do
214
- params = {id: failed_job.id, error_type: 'Blah'}
215
- params = {params: params} if Rails.version.to_i >= 5
216
- get :exception, params
199
+ get :exception, params: {id: failed_job.id, error_type: "Blah"}
217
200
  end
218
201
 
219
- it 'redirects to job path' do
202
+ it "redirects to job path" do
220
203
  assert_redirected_to job_path(failed_job.id)
221
204
  end
222
205
 
223
- it 'notifies the user' do
224
- assert_equal I18n.t(:no_errors, scope: [:job, :failures]), flash[:notice]
206
+ it "notifies the user" do
207
+ assert_equal I18n.t(:no_errors, scope: %i[job failures]), flash[:notice]
225
208
  end
226
209
  end
227
210
 
228
- describe 'with exception' do
211
+ describe "with exception" do
229
212
  before do
230
- params = {id: failed_job.id, error_type: 'ArgumentError'}
231
- params = {params: params} if Rails.version.to_i >= 5
232
- get :exception, params
213
+ get :exception, params: {id: failed_job.id, error_type: "ArgumentError"}
233
214
  end
234
215
 
235
- it 'succeeds' do
216
+ it "succeeds" do
236
217
  assert_response :success
237
218
  end
238
219
 
239
- it 'assigns the job' do
220
+ it "assigns the job" do
240
221
  assert_equal failed_job.id, assigns(:job).id
241
222
  end
242
223
 
243
- it 'paginates' do
224
+ it "paginates" do
244
225
  assert_equal 0, assigns(:pagination)[:offset], assigns(:pagination)
245
226
  assert_equal 1, assigns(:pagination)[:total], assigns(:pagination)
246
227
  end
247
228
 
248
- it 'returns the first exception' do
249
- assert_equal 'ArgumentError', assigns(:failure_exception).class_name
250
- assert_equal 'Blowing up on record: 1', assigns(:failure_exception).message
229
+ it "returns the first exception" do
230
+ assert_equal "ArgumentError", assigns(:failure_exception).class_name
231
+ assert_equal "Blowing up on record: 1", assigns(:failure_exception).message
251
232
  assert assigns(:failure_exception).backtrace.present?
252
233
  end
253
234
  end
@@ -256,17 +237,17 @@ module RocketJobMissionControl
256
237
 
257
238
  ([:index] + job_states).each do |state|
258
239
  describe "GET ##{state}" do
259
- describe 'html' do
240
+ describe "html" do
260
241
  describe "with no #{state} servers" do
261
242
  before do
262
243
  get state
263
244
  end
264
245
 
265
- it 'succeeds' do
246
+ it "succeeds" do
266
247
  assert_response :success
267
248
  end
268
249
 
269
- it 'renders template' do
250
+ it "renders template" do
270
251
  assert_template :index
271
252
  end
272
253
  end
@@ -277,23 +258,23 @@ module RocketJobMissionControl
277
258
  get state
278
259
  end
279
260
 
280
- it 'succeeds' do
261
+ it "succeeds" do
281
262
  assert_response :success
282
263
  end
283
264
 
284
- it 'renders template' do
265
+ it "renders template" do
285
266
  assert_template :index
286
267
  end
287
268
  end
288
269
  end
289
270
 
290
- describe 'json' do
271
+ describe "json" do
291
272
  describe "with no #{state} server" do
292
273
  before do
293
274
  get state, format: :json
294
275
  end
295
276
 
296
- it 'succeeds' do
277
+ it "succeeds" do
297
278
  assert_response :success
298
279
  json = JSON.parse(response.body)
299
280
  expected = {
@@ -313,81 +294,79 @@ module RocketJobMissionControl
313
294
  get state, format: :json
314
295
  end
315
296
 
316
- it 'succeeds' do
297
+ it "succeeds" do
317
298
  assert_response :success
318
299
  json = JSON.parse(response.body)
319
300
  expected_data = {
320
301
  aborted: {
321
302
  "0" => /#{RocketJob::Jobs::SimpleJob.name}/,
322
- "1" => '',
303
+ "1" => "",
323
304
  "2" => /UTC/,
324
305
  "3" => /ms/,
325
- "4" => /\/jobs\/#{RocketJob::Jobs::SimpleJob.aborted.first.id}/,
306
+ "4" => %r{/jobs/#{RocketJob::Jobs::SimpleJob.aborted.first.id}},
326
307
  "DT_RowClass" => "card callout callout-aborted"
327
308
  },
328
309
  failed: {
329
310
  "0" => /#{RocketJob::Jobs::SimpleJob.name}/,
330
- "1" => '',
311
+ "1" => "",
331
312
  "2" => /UTC/,
332
313
  "3" => /ms/,
333
- "4" => /\/jobs\/#{RocketJob::Jobs::SimpleJob.failed.first.id}/,
314
+ "4" => %r{/jobs/#{RocketJob::Jobs::SimpleJob.failed.first.id}},
334
315
  "DT_RowClass" => "card callout callout-failed"
335
316
  },
336
317
  paused: {
337
318
  "0" => /#{RocketJob::Jobs::SimpleJob.name}/,
338
- "1" => '',
319
+ "1" => "",
339
320
  "2" => /UTC/,
340
321
  "3" => /ms/,
341
- "4" => /\/jobs\/#{RocketJob::Jobs::SimpleJob.paused.first.id}/,
322
+ "4" => %r{/jobs/#{RocketJob::Jobs::SimpleJob.paused.first.id}},
342
323
  "DT_RowClass" => "card callout callout-paused"
343
324
  },
344
325
  completed: {
345
326
  "0" => /#{RocketJob::Jobs::SimpleJob.name}/,
346
- "1" => '',
327
+ "1" => "",
347
328
  "2" => /UTC/,
348
329
  "3" => /ms/,
349
- "4" => /\/jobs\/#{RocketJob::Jobs::SimpleJob.completed.first.id}/,
330
+ "4" => %r{/jobs/#{RocketJob::Jobs::SimpleJob.completed.first.id}},
350
331
  "DT_RowClass" => "card callout callout-completed"
351
332
  },
352
333
  running: {
353
334
  "0" => /#{RocketJob::Jobs::SimpleJob.name}/,
354
- "1" => '',
335
+ "1" => "",
355
336
  "2" => /UTC/,
356
337
  "3" => /ms/,
357
- "4" => /\/jobs\/#{RocketJob::Jobs::SimpleJob.running.first.id}/,
338
+ "4" => %r{/jobs/#{RocketJob::Jobs::SimpleJob.running.first.id}},
358
339
  "DT_RowClass" => "card callout callout-running"
359
340
  },
360
341
  queued: {
361
342
  "0" => /#{RocketJob::Jobs::SimpleJob.name}/,
362
- "1" => '',
363
- "2" => /UTC/,
343
+ "1" => "",
344
+ "2" => /0/,
364
345
  "3" => /ms/,
365
- "4" => /\/jobs\/#{RocketJob::Jobs::SimpleJob.queued.first.id}/,
346
+ "4" => %r{/jobs/#{RocketJob::Jobs::SimpleJob.queued.first.id}},
366
347
  "DT_RowClass" => "card callout callout-queued"
367
- },
348
+ }
368
349
  }
369
350
 
370
351
  if state == :index
371
- assert_equal 0, json['draw']
372
- assert_equal 6, json['recordsTotal']
373
- assert_equal 6, json['recordsFiltered']
374
- compare_array_of_hashes expected_data.values, json['data']
352
+ assert_equal 0, json["draw"]
353
+ assert_equal 6, json["recordsTotal"]
354
+ assert_equal 6, json["recordsFiltered"]
355
+ compare_array_of_hashes(expected_data.values, json["data"])
375
356
  else
376
- assert_equal 0, json['draw']
377
- assert_equal 1, json['recordsTotal']
378
- assert_equal 1, json['recordsFiltered']
357
+ assert_equal 0, json["draw"]
358
+ assert_equal 1, json["recordsTotal"]
359
+ assert_equal 1, json["recordsFiltered"]
379
360
  # Columns change by state
380
- #compare_hash expected_data[state], json['data'].first
361
+ # compare_hash expected_data[state], json['data'].first
381
362
  end
382
363
  end
383
364
  end
384
-
385
365
  end
386
-
387
366
  end
388
367
  end
389
368
 
390
- describe 'role base authentication control' do
369
+ describe "role base authentication control" do
391
370
  %i[index aborted completed failed paused queued running scheduled].each do |method|
392
371
  it "#{method} has read access as default" do
393
372
  get method, format: :json
@@ -396,7 +375,7 @@ module RocketJobMissionControl
396
375
  end
397
376
 
398
377
  %i[update abort retry pause resume run_now fail].each do |method|
399
- describe "#{method}" do
378
+ describe method.to_s do
400
379
  before do
401
380
  case method
402
381
  when :pause, :fail, :abort
@@ -408,13 +387,12 @@ module RocketJobMissionControl
408
387
  end
409
388
 
410
389
  @params = {id: pausable_job.id, job: {id: pausable_job.id, priority: pausable_job.priority}}
411
- @params = {params: @params} if Rails.version.to_i >= 5
412
390
  end
413
391
 
414
392
  %i[admin editor operator manager].each do |role|
415
393
  it "redirects with #{method} method and role #{role}" do
416
394
  set_role(role)
417
- patch method, @params
395
+ patch method, params: @params
418
396
  assert_response(:redirect)
419
397
  end
420
398
  end
@@ -423,7 +401,7 @@ module RocketJobMissionControl
423
401
  it "raises authentication error for #{role}" do
424
402
  set_role(role)
425
403
  assert_raises AccessGranted::AccessDenied do
426
- patch method, @params
404
+ patch method, params: @params
427
405
  end
428
406
  end
429
407
  end
@@ -431,12 +409,11 @@ module RocketJobMissionControl
431
409
  end
432
410
  end
433
411
 
434
- [:view_slice, :edit_slice].each do |method|
412
+ %i[view_slice edit_slice].each do |method|
435
413
  describe "with a failed slice" do
436
414
  it "access ##{method}" do
437
415
  params = {:error_type => "ArgumentError", "record_number" => "9", "id" => failed_job.id}
438
- params = {params: params} if Rails.version.to_i >= 5
439
- get method, params
416
+ get method, params: params
440
417
  assert_response :success
441
418
  end
442
419
  end
@@ -444,25 +421,24 @@ module RocketJobMissionControl
444
421
 
445
422
  describe "#update slice" do
446
423
  before do
447
- params = { "job" => { "records" => [ "1", "2", "3"] }, "error_type" => "CSV::MalformedCSVError", "offset" => "1", "id" => failed_job.id.to_s }
448
- params = {params: params} if Rails.version.to_i >= 5
449
- post :update_slice, params
424
+ params = {"job" => {"records" => %w[1 2 3]}, "error_type" => "CSV::MalformedCSVError", "offset" => "1", "id" => failed_job.id.to_s}
425
+ post :update_slice, params: params
450
426
  end
451
427
 
452
- it 'redirects' do
428
+ it "redirects" do
453
429
  assert_redirected_to view_slice_job_path(failed_job, error_type: "CSV::MalformedCSVError")
454
430
  end
455
431
 
456
- it 'adds a flash success message' do
457
- assert_equal 'slice updated', flash[:success]
432
+ it "adds a flash success message" do
433
+ assert_equal "slice updated", flash[:success]
458
434
  end
459
435
  end
460
436
  end
461
437
 
462
438
  def set_role(r)
463
- Config.authorization_callback = -> do
439
+ Config.authorization_callback = lambda {
464
440
  {roles: [r]}
465
- end
441
+ }
466
442
  end
467
443
  end
468
444
  end