sidekiq-undertaker 1.0.0.rc04 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +9 -2
  3. data/.github/dependabot.yml +8 -0
  4. data/.github/workflows/ruby-build.yml +51 -0
  5. data/.gitignore +1 -0
  6. data/.rspec +2 -0
  7. data/.rubocop.yml +4 -0
  8. data/.rubocop_codeclimate.yml +5 -0
  9. data/.rubocop_todo.yml +5 -5
  10. data/.travis.yml +22 -17
  11. data/README.md +3 -2
  12. data/Rakefile +2 -0
  13. data/lib/sidekiq/undertaker/dead_job.rb +1 -1
  14. data/lib/sidekiq/undertaker/version.rb +1 -1
  15. data/lib/sidekiq/undertaker/web_extension/api_helpers.rb +5 -1
  16. data/lib/sidekiq/undertaker/web_extension.rb +2 -0
  17. data/lib/sidekiq/undertaker.rb +1 -1
  18. data/renovate.json +5 -0
  19. data/sidekiq-undertaker.gemspec +14 -10
  20. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_filter_page_is_called/behaves_like_a_page/{the_displayed_page_is_correct.approved.txt → the_displayed_page_is_correct_for_sidekiqv6.approved.txt} +2 -0
  21. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_called/behaves_like_a_page/{the_displayed_page_is_correct.approved.txt → the_displayed_page_is_correct_for_sidekiqv6.approved.txt} +2 -0
  22. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_polled/behaves_like_a_page/{the_displayed_page_is_correct.approved.txt → the_displayed_page_is_correct_for_sidekiqv6.approved.txt} +2 -0
  23. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_all_failures_and_errors/behaves_like_a_page/{the_displayed_page_is_correct.approved.txt → the_displayed_page_is_correct_for_sidekiqv6.approved.txt} +9 -4
  24. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/behaves_like_a_page/{the_displayed_page_is_correct.approved.txt → the_displayed_page_is_correct_for_sidekiqv6.approved.txt} +9 -4
  25. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/with_pagination/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +1305 -0
  26. data/spec/sidekiq/undertaker/dead_jobs_spec.rb +1 -1
  27. data/spec/sidekiq/undertaker/job_distributor_spec.rb +6 -6
  28. data/spec/sidekiq/undertaker/job_filter_spec.rb +4 -3
  29. data/spec/sidekiq/undertaker/web_extension_spec.rb +30 -4
  30. data/spec/spec_helper.rb +4 -5
  31. data/web/views/morgue.erb +3 -5
  32. metadata +52 -36
@@ -50,7 +50,7 @@ module Sidekiq
50
50
 
51
51
  describe ".for_each" do
52
52
  let(:expected_dead_job) do
53
- DeadJob.new(
53
+ described_class.new(
54
54
  job_class: "HardWorkTask",
55
55
  time_elapsed_since_failure: time_elapsed,
56
56
  error_class: "NoMethodError",
@@ -6,28 +6,28 @@ module Sidekiq
6
6
  module Undertaker
7
7
  describe JobDistributor do
8
8
  let(:job1) do
9
- instance_double(Sidekiq::Job, item: {
9
+ instance_double(Sidekiq::JobRecord, item: {
10
10
  "class" => "A",
11
11
  "failed_at" => 1,
12
12
  "error_class" => "E1"
13
13
  })
14
14
  end
15
15
  let(:job2) do
16
- instance_double(Sidekiq::Job, item: {
16
+ instance_double(Sidekiq::JobRecord, item: {
17
17
  "class" => "A",
18
18
  "failed_at" => 1,
19
19
  "error_class" => "E1"
20
20
  })
21
21
  end
22
22
  let(:job3) do
23
- instance_double(Sidekiq::Job, item: {
23
+ instance_double(Sidekiq::JobRecord, item: {
24
24
  "class" => "B",
25
25
  "failed_at" => 1,
26
26
  "error_class" => "E1"
27
27
  })
28
28
  end
29
29
  let(:job4) do
30
- instance_double(Sidekiq::Job, item: {
30
+ instance_double(Sidekiq::JobRecord, item: {
31
31
  "class" => "B",
32
32
  "failed_at" => 1,
33
33
  "error_class" => "E2"
@@ -66,7 +66,7 @@ module Sidekiq
66
66
 
67
67
  let(:dead_jobs) { [dead_job1, dead_job2, dead_job3, dead_job4] }
68
68
 
69
- # rubocop:disable Metrics/LineLength
69
+ # rubocop:disable Layout/LineLength
70
70
  describe "#group_by_job_class" do
71
71
  subject(:distribution) { described_class.new(dead_jobs).group_by_job_class }
72
72
 
@@ -98,7 +98,7 @@ module Sidekiq
98
98
  expect(distribution).to eq expected_distribution
99
99
  end
100
100
  end
101
- # rubocop:enable Metrics/LineLength
101
+ # rubocop:enable Layout/LineLength
102
102
  end
103
103
  end
104
104
  end
@@ -7,7 +7,7 @@ module Sidekiq
7
7
  describe JobFilter do
8
8
  describe ".filter_dead_jobs" do
9
9
  let(:job1) do
10
- instance_double(Sidekiq::Job, item: {
10
+ instance_double(Sidekiq::JobRecord, item: {
11
11
  "class" => "HardWorkTask",
12
12
  "failed_at" => Time.now.to_i - 5 * 60,
13
13
  "error_class" => "NoMethodError"
@@ -15,7 +15,7 @@ module Sidekiq
15
15
  end
16
16
 
17
17
  let(:job2) do
18
- instance_double(Sidekiq::Job, item: {
18
+ instance_double(Sidekiq::JobRecord, item: {
19
19
  "class" => "HardWorkTask",
20
20
  "failed_at" => Time.now.to_i - 2 * 60 * 60,
21
21
  "error_class" => "RandomError"
@@ -23,7 +23,7 @@ module Sidekiq
23
23
  end
24
24
 
25
25
  let(:job3) do
26
- instance_double(Sidekiq::Job, item: {
26
+ instance_double(Sidekiq::JobRecord, item: {
27
27
  "class" => "LazyWorkTask",
28
28
  "failed_at" => Time.now.to_i - 2 * 60 * 60,
29
29
  "error_class" => "NoMethodError"
@@ -81,6 +81,7 @@ module Sidekiq
81
81
  expect(dead_job.error_class).to eq "NoMethodError"
82
82
  end
83
83
  end
84
+
84
85
  it { expect(dead_jobs.size).to eq 2 }
85
86
  end
86
87
 
@@ -13,7 +13,13 @@ module Sidekiq
13
13
  describe WebExtension, type: :controller do
14
14
  include Rack::Test::Methods
15
15
 
16
- let(:app) { Sidekiq::Web }
16
+ let(:app) do
17
+ Sidekiq::Web.new.tap do |app|
18
+ # In order to use the Web UI of Sidekiq `6.2` a session is required
19
+ # SEE: https://github.com/mperham/sidekiq/blob/master/Changes.md#620
20
+ app.use Rack::Session::Cookie, secret: "A-Test-Web-Session-Secret"
21
+ end
22
+ end
17
23
  let(:job_refs) { [] }
18
24
 
19
25
  let(:jid1) { "4416aa76eb8cf03f56a49220" }
@@ -43,13 +49,14 @@ module Sidekiq
43
49
  job_refs.push add_dead("jid" => jid4, "class" => "HardWorker1", "error_class" => "NoMethodError")
44
50
 
45
51
  allow_any_instance_of(Sidekiq::WebAction).to receive(:root_path).and_return("/sidekiq/")
52
+
53
+ allow_any_instance_of(::Sidekiq::Web::CsrfProtection).to receive(:valid_token?).and_return(true)
46
54
  end
47
- # rubocop:enable RSpec/AnyInstance
48
55
 
49
56
  after { Timecop.return }
50
57
 
51
58
  def add_dead(opts = {})
52
- opts = default_job_opts.merge!(opts)
59
+ opts = default_job_opts.merge(opts)
53
60
 
54
61
  job = build_job(opts)
55
62
  killed_job = kill_job(job)
@@ -58,7 +65,7 @@ module Sidekiq
58
65
  end
59
66
 
60
67
  shared_examples "a page" do
61
- it "the displayed page is correct" do
68
+ it "the displayed page is correct (for Sidekiq=v#{Sidekiq::VERSION.split('.').first})" do
62
69
  subject
63
70
 
64
71
  expect(last_response.status).to eq 200
@@ -69,6 +76,10 @@ module Sidekiq
69
76
  end
70
77
 
71
78
  describe "show filter" do
79
+ before do
80
+ allow_any_instance_of(Sidekiq::Web::CsrfProtection).to receive(:mask_token).and_return("stubbed-csrf-token")
81
+ end
82
+
72
83
  # /undertaker/filter
73
84
  context "when filter page is called" do
74
85
  subject { get "/undertaker/filter" }
@@ -92,12 +103,26 @@ module Sidekiq
92
103
  end
93
104
 
94
105
  describe "show morgue" do
106
+ before do
107
+ allow_any_instance_of(Sidekiq::Web::CsrfProtection).to receive(:mask_token).and_return("stubbed-csrf-token")
108
+ end
109
+
95
110
  # /undertaker/morgue/:job_class/:error_class/:bucket_name
96
111
  context "when job-class/error/bucket is called" do
97
112
  context "with specific job-class and a specific error" do
98
113
  subject { get "/undertaker/morgue/HardWorker/RuntimeError/1_hour" }
99
114
 
100
115
  it_behaves_like "a page"
116
+
117
+ context "with pagination" do
118
+ before do
119
+ 50.times do |i|
120
+ job_refs.push add_dead("jid" => i.to_s)
121
+ end
122
+ end
123
+
124
+ it_behaves_like "a page"
125
+ end
101
126
  end
102
127
 
103
128
  context "with all failures and errors" do
@@ -107,6 +132,7 @@ module Sidekiq
107
132
  end
108
133
  end
109
134
  end
135
+ # rubocop:enable RSpec/AnyInstance
110
136
 
111
137
  describe "delete" do
112
138
  context "when job-class, error and bucket are given" do
data/spec/spec_helper.rb CHANGED
@@ -36,15 +36,14 @@ RSpec.configure do |config|
36
36
  config.run_all_when_everything_filtered = true
37
37
  config.filter_run :focus
38
38
 
39
+ config.approvals_default_format = :txt
40
+
39
41
  # Run specs in random order to surface order dependencies. If you find an
40
42
  # order dependency and want to debug it, you can fix the order by providing
41
43
  # the seed, which is printed after each run.
42
44
  # --seed 1234
43
45
  config.order = "random"
44
-
45
- RSpec.configure do |con|
46
- con.approvals_default_format = :txt
47
- end
46
+ Kernel.srand config.seed
48
47
 
49
48
  config.before do
50
49
  ::Sidekiq.redis(&:flushdb)
@@ -56,7 +55,7 @@ def apply_custom_excludes(data)
56
55
  end
57
56
 
58
57
  def build_job(item)
59
- Sidekiq::Job.new(item)
58
+ Sidekiq::JobRecord.new(item)
60
59
  end
61
60
 
62
61
  def job_to_sorted_entry(job, score: Time.now.utc.to_i, set: Sidekiq::SortedSet.new("test-jobs"))
data/web/views/morgue.erb CHANGED
@@ -8,11 +8,9 @@
8
8
  </h3>
9
9
  </div>
10
10
  <div class="col-sm-12">
11
- <% if @total_dead > 0 && @total_dead > @count %>
12
- <div class="col-sm-4">
13
- <%= erb :_paging, :locals => { :url => "#{root_path}" + @undertaker_path } %>
14
- </div>
15
- <% end %>
11
+ <div class="col-sm-4">
12
+ <%= erb :_paging, :locals => { :url => "#{root_path}" + @undertaker_path } %>
13
+ </div>
16
14
  </div>
17
15
  </header>
18
16
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-undertaker
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.rc04
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Koppensteiner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-16 00:00:00.000000000 Z
11
+ date: 2022-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -36,34 +36,28 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '12.3'
39
+ version: '13.0'
40
40
  type: :development
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '12.3'
46
+ version: '13.0'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: approvals
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '0.0'
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: 0.0.24
53
+ version: 0.0.25
57
54
  type: :development
58
55
  prerelease: false
59
56
  version_requirements: !ruby/object:Gem::Requirement
60
57
  requirements:
61
58
  - - "~>"
62
59
  - !ruby/object:Gem::Version
63
- version: '0.0'
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: 0.0.24
60
+ version: 0.0.25
67
61
  - !ruby/object:Gem::Dependency
68
62
  name: mock_redis
69
63
  requirement: !ruby/object:Gem::Requirement
@@ -182,42 +176,56 @@ dependencies:
182
176
  requirements:
183
177
  - - "~>"
184
178
  - !ruby/object:Gem::Version
185
- version: '1.2'
179
+ version: '2.3'
186
180
  type: :development
187
181
  prerelease: false
188
182
  version_requirements: !ruby/object:Gem::Requirement
189
183
  requirements:
190
184
  - - "~>"
191
185
  - !ruby/object:Gem::Version
192
- version: '1.2'
186
+ version: '2.3'
193
187
  - !ruby/object:Gem::Dependency
194
188
  name: rubocop
195
189
  requirement: !ruby/object:Gem::Requirement
196
190
  requirements:
197
191
  - - "~>"
198
192
  - !ruby/object:Gem::Version
199
- version: '0.77'
193
+ version: '1.8'
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: '1.8'
201
+ - !ruby/object:Gem::Dependency
202
+ name: rubocop-rake
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - "~>"
206
+ - !ruby/object:Gem::Version
207
+ version: '0.5'
200
208
  type: :development
201
209
  prerelease: false
202
210
  version_requirements: !ruby/object:Gem::Requirement
203
211
  requirements:
204
212
  - - "~>"
205
213
  - !ruby/object:Gem::Version
206
- version: '0.77'
214
+ version: '0.5'
207
215
  - !ruby/object:Gem::Dependency
208
216
  name: rubocop-rspec
209
217
  requirement: !ruby/object:Gem::Requirement
210
218
  requirements:
211
219
  - - "~>"
212
220
  - !ruby/object:Gem::Version
213
- version: '1.30'
221
+ version: '2.0'
214
222
  type: :development
215
223
  prerelease: false
216
224
  version_requirements: !ruby/object:Gem::Requirement
217
225
  requirements:
218
226
  - - "~>"
219
227
  - !ruby/object:Gem::Version
220
- version: '1.30'
228
+ version: '2.0'
221
229
  - !ruby/object:Gem::Dependency
222
230
  name: rubocop_runner
223
231
  requirement: !ruby/object:Gem::Requirement
@@ -280,20 +288,20 @@ dependencies:
280
288
  requirements:
281
289
  - - ">="
282
290
  - !ruby/object:Gem::Version
283
- version: '5.2'
291
+ version: 6.2.2
284
292
  - - "<"
285
293
  - !ruby/object:Gem::Version
286
- version: '7'
294
+ version: '6.3'
287
295
  type: :runtime
288
296
  prerelease: false
289
297
  version_requirements: !ruby/object:Gem::Requirement
290
298
  requirements:
291
299
  - - ">="
292
300
  - !ruby/object:Gem::Version
293
- version: '5.2'
301
+ version: 6.2.2
294
302
  - - "<"
295
303
  - !ruby/object:Gem::Version
296
- version: '7'
304
+ version: '6.3'
297
305
  description: |2
298
306
  Sidekiq::Undertaker is a plugin for Sidekiq.
299
307
  It allows exploring, reviving (retrying) or burying (deleting) dead jobs.
@@ -305,8 +313,12 @@ extensions: []
305
313
  extra_rdoc_files: []
306
314
  files:
307
315
  - ".codeclimate.yml"
316
+ - ".github/dependabot.yml"
317
+ - ".github/workflows/ruby-build.yml"
308
318
  - ".gitignore"
319
+ - ".rspec"
309
320
  - ".rubocop.yml"
321
+ - ".rubocop_codeclimate.yml"
310
322
  - ".rubocop_todo.yml"
311
323
  - ".travis.yml"
312
324
  - Demo_Filter.png
@@ -325,12 +337,14 @@ files:
325
337
  - lib/sidekiq/undertaker/version.rb
326
338
  - lib/sidekiq/undertaker/web_extension.rb
327
339
  - lib/sidekiq/undertaker/web_extension/api_helpers.rb
340
+ - renovate.json
328
341
  - sidekiq-undertaker.gemspec
329
- - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_filter_page_is_called/behaves_like_a_page/the_displayed_page_is_correct.approved.txt
330
- - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_called/behaves_like_a_page/the_displayed_page_is_correct.approved.txt
331
- - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_polled/behaves_like_a_page/the_displayed_page_is_correct.approved.txt
332
- - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_all_failures_and_errors/behaves_like_a_page/the_displayed_page_is_correct.approved.txt
333
- - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/behaves_like_a_page/the_displayed_page_is_correct.approved.txt
342
+ - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_filter_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
343
+ - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
344
+ - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_polled/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
345
+ - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_all_failures_and_errors/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
346
+ - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
347
+ - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/with_pagination/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
334
348
  - spec/sidekiq/undertaker/bucket_spec.rb
335
349
  - spec/sidekiq/undertaker/dead_jobs_spec.rb
336
350
  - spec/sidekiq/undertaker/job_distributor_spec.rb
@@ -349,6 +363,7 @@ metadata:
349
363
  source_code_uri: https://github.com/ThomasKoppensteiner/sidekiq-undertaker
350
364
  bug_tracker_uri: https://github.com/ThomasKoppensteiner/sidekiq-undertaker/issues
351
365
  build_status_uri: https://travis-ci.org/ThomasKoppensteiner/sidekiq-undertaker
366
+ rubygems_mfa_required: 'true'
352
367
  post_install_message:
353
368
  rdoc_options: []
354
369
  require_paths:
@@ -358,23 +373,24 @@ required_ruby_version: !ruby/object:Gem::Requirement
358
373
  requirements:
359
374
  - - ">="
360
375
  - !ruby/object:Gem::Version
361
- version: '0'
376
+ version: 2.5.0
362
377
  required_rubygems_version: !ruby/object:Gem::Requirement
363
378
  requirements:
364
- - - ">"
379
+ - - ">="
365
380
  - !ruby/object:Gem::Version
366
- version: 1.3.1
381
+ version: '0'
367
382
  requirements: []
368
- rubygems_version: 3.0.2
383
+ rubygems_version: 3.0.3.1
369
384
  signing_key:
370
385
  specification_version: 4
371
386
  summary: Sidekiq::Undertaker allows exploring, reviving or burying dead jobs
372
387
  test_files:
373
- - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_filter_page_is_called/behaves_like_a_page/the_displayed_page_is_correct.approved.txt
374
- - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_called/behaves_like_a_page/the_displayed_page_is_correct.approved.txt
375
- - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_polled/behaves_like_a_page/the_displayed_page_is_correct.approved.txt
376
- - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_all_failures_and_errors/behaves_like_a_page/the_displayed_page_is_correct.approved.txt
377
- - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/behaves_like_a_page/the_displayed_page_is_correct.approved.txt
388
+ - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_filter_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
389
+ - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
390
+ - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_polled/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
391
+ - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_all_failures_and_errors/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
392
+ - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
393
+ - spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/with_pagination/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt
378
394
  - spec/sidekiq/undertaker/bucket_spec.rb
379
395
  - spec/sidekiq/undertaker/dead_jobs_spec.rb
380
396
  - spec/sidekiq/undertaker/job_distributor_spec.rb