sidekiq-undertaker 1.0.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +1 -1
  3. data/.github/dependabot.yml +8 -0
  4. data/.github/workflows/ruby-build.yml +51 -0
  5. data/.rspec +2 -0
  6. data/.rubocop.yml +5 -0
  7. data/.rubocop_todo.yml +5 -5
  8. data/.travis.yml +21 -19
  9. data/CHANGELOG.md +100 -0
  10. data/README.md +4 -1
  11. data/Rakefile +2 -0
  12. data/lib/sidekiq/undertaker/dead_job.rb +1 -1
  13. data/lib/sidekiq/undertaker/version.rb +1 -1
  14. data/lib/sidekiq/undertaker/web_extension.rb +2 -0
  15. data/lib/sidekiq/undertaker.rb +1 -1
  16. data/renovate.json +5 -0
  17. data/sidekiq-undertaker.gemspec +15 -10
  18. data/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 +15 -16
  19. data/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 +15 -16
  20. data/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 +15 -16
  21. 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_for_sidekiqv6.approved.txt +18 -19
  22. 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_for_sidekiqv6.approved.txt +18 -19
  23. 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 +18 -19
  24. data/spec/sidekiq/undertaker/job_distributor_spec.rb +6 -6
  25. data/spec/sidekiq/undertaker/job_filter_spec.rb +3 -3
  26. data/spec/sidekiq/undertaker/web_extension_spec.rb +18 -2
  27. data/spec/spec_helper.rb +4 -5
  28. metadata +40 -37
  29. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_filter_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt +0 -240
  30. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt +0 -241
  31. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_polled/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt +0 -241
  32. 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_for_sidekiqv5.approved.txt +0 -319
  33. 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_for_sidekiqv5.approved.txt +0 -277
  34. 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_sidekiqv5.approved.txt +0 -1303
@@ -9,15 +9,16 @@
9
9
 
10
10
 
11
11
  <link href="/sidekiq/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
12
- <link href="/sidekiq/stylesheets/application-dark.css" media="screen" rel="stylesheet" type="text/css" />
12
+ <link href="/sidekiq/stylesheets/application-dark.css" media="screen and (prefers-color-scheme: dark)" rel="stylesheet" type="text/css" />
13
13
 
14
14
 
15
+ <link rel="apple-touch-icon" href="/sidekiq/images/apple-touch-icon.png">
15
16
  <link rel="shortcut icon" type="image/ico" href="/sidekiq/images/favicon.ico" />
16
17
  <script type="text/javascript" src="/sidekiq/javascripts/application.js"></script>
17
18
  <meta name="google" content="notranslate" />
18
19
 
19
20
  </head>
20
- <body class="admin" data-poll-path="/sidekiq/undertaker/filter/HardWorker/1_hour" data-locale="en">
21
+ <body class="admin" data-locale="en">
21
22
  <div class="navbar navbar-default navbar-fixed-top">
22
23
  <div class="container-fluid">
23
24
  <div class="navbar-header" data-navbar="static">
@@ -28,9 +29,8 @@
28
29
  </button>
29
30
  <div class="navbar-toggle collapsed navbar-livereload">
30
31
 
31
-
32
- <a id="live-poll" class="btn btn-primary active" href="/sidekiq/undertaker/filter/HardWorker/1_hour">Stop Polling</a>
33
-
32
+ <a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
33
+ <a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
34
34
 
35
35
 
36
36
 
@@ -94,9 +94,8 @@
94
94
  <li class="navbar-livereload">
95
95
  <div class="poll-wrapper">
96
96
 
97
-
98
- <a id="live-poll" class="btn btn-primary active" href="/sidekiq/undertaker/filter/HardWorker/1_hour">Stop Polling</a>
99
-
97
+ <a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
98
+ <a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
100
99
 
101
100
 
102
101
 
@@ -113,40 +112,40 @@
113
112
  <div class="col-sm-12 summary_bar">
114
113
  <ul class="list-unstyled summary row">
115
114
  <li class="processed col-sm-1">
116
- <span class="count">0</span>
115
+ <span id="txtProcessed" class="count">0</span>
117
116
  <span class="desc">Processed</span>
118
117
  </li>
119
118
  <li class="failed col-sm-1">
120
- <span class="count">0</span>
119
+ <span id="txtFailed" class="count">0</span>
121
120
  <span class="desc">Failed</span>
122
121
  </li>
123
122
  <li class="busy col-sm-1">
124
123
  <a href="/sidekiq/busy">
125
- <span class="count">0</span>
124
+ <span id="txtBusy" class="count">0</span>
126
125
  <span class="desc">Busy</span>
127
126
  </a>
128
127
  </li>
129
128
  <li class="enqueued col-sm-1">
130
129
  <a href="/sidekiq/queues">
131
- <span class="count">0</span>
130
+ <span id="txtEnqueued" class="count">0</span>
132
131
  <span class="desc">Enqueued</span>
133
132
  </a>
134
133
  </li>
135
134
  <li class="retries col-sm-1">
136
135
  <a href="/sidekiq/retries">
137
- <span class="count">0</span>
136
+ <span id="txtRetries" class="count">0</span>
138
137
  <span class="desc">Retries</span>
139
138
  </a>
140
139
  </li>
141
140
  <li class="scheduled col-sm-1">
142
141
  <a href="/sidekiq/scheduled">
143
- <span class="count">0</span>
142
+ <span id="txtScheduled" class="count">0</span>
144
143
  <span class="desc">Scheduled</span>
145
144
  </a>
146
145
  </li>
147
146
  <li class="dead col-sm-1">
148
147
  <a href="/sidekiq/morgue">
149
- <span class="count">4</span>
148
+ <span id="txtDead" class="count">4</span>
150
149
  <span class="desc">Dead</span>
151
150
  </a>
152
151
  </li>
@@ -228,7 +227,7 @@
228
227
  <p class="navbar-text redis-url" title="redis://127.0.0.1:6379/0">redis://127.0.0.1:6379/0</p>
229
228
  </li>
230
229
  <li>
231
- <p class="navbar-text server-utc-time">20:57:00 UTC</p>
230
+ <p id="serverUtcTime" class="navbar-text server-utc-time">20:57:00 UTC</p>
232
231
  </li>
233
232
  <li>
234
233
  <p class="navbar-text"><a style="color: gray;" href="https://github.com/mperham/sidekiq/wiki">docs</a></p>
@@ -9,15 +9,16 @@
9
9
 
10
10
 
11
11
  <link href="/sidekiq/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
12
- <link href="/sidekiq/stylesheets/application-dark.css" media="screen" rel="stylesheet" type="text/css" />
12
+ <link href="/sidekiq/stylesheets/application-dark.css" media="screen and (prefers-color-scheme: dark)" rel="stylesheet" type="text/css" />
13
13
 
14
14
 
15
+ <link rel="apple-touch-icon" href="/sidekiq/images/apple-touch-icon.png">
15
16
  <link rel="shortcut icon" type="image/ico" href="/sidekiq/images/favicon.ico" />
16
17
  <script type="text/javascript" src="/sidekiq/javascripts/application.js"></script>
17
18
  <meta name="google" content="notranslate" />
18
19
 
19
20
  </head>
20
- <body class="admin" data-poll-path="" data-locale="en">
21
+ <body class="admin" data-locale="en">
21
22
  <div class="navbar navbar-default navbar-fixed-top">
22
23
  <div class="container-fluid">
23
24
  <div class="navbar-header" data-navbar="static">
@@ -28,9 +29,8 @@
28
29
  </button>
29
30
  <div class="navbar-toggle collapsed navbar-livereload">
30
31
 
31
-
32
- <a id="live-poll" class="btn btn-primary" href="/sidekiq/undertaker/morgue/all/all/total_dead?poll=true">Live Poll</a>
33
-
32
+ <a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
33
+ <a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
34
34
 
35
35
 
36
36
 
@@ -94,9 +94,8 @@
94
94
  <li class="navbar-livereload">
95
95
  <div class="poll-wrapper">
96
96
 
97
-
98
- <a id="live-poll" class="btn btn-primary" href="/sidekiq/undertaker/morgue/all/all/total_dead?poll=true">Live Poll</a>
99
-
97
+ <a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
98
+ <a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
100
99
 
101
100
 
102
101
 
@@ -113,40 +112,40 @@
113
112
  <div class="col-sm-12 summary_bar">
114
113
  <ul class="list-unstyled summary row">
115
114
  <li class="processed col-sm-1">
116
- <span class="count">0</span>
115
+ <span id="txtProcessed" class="count">0</span>
117
116
  <span class="desc">Processed</span>
118
117
  </li>
119
118
  <li class="failed col-sm-1">
120
- <span class="count">0</span>
119
+ <span id="txtFailed" class="count">0</span>
121
120
  <span class="desc">Failed</span>
122
121
  </li>
123
122
  <li class="busy col-sm-1">
124
123
  <a href="/sidekiq/busy">
125
- <span class="count">0</span>
124
+ <span id="txtBusy" class="count">0</span>
126
125
  <span class="desc">Busy</span>
127
126
  </a>
128
127
  </li>
129
128
  <li class="enqueued col-sm-1">
130
129
  <a href="/sidekiq/queues">
131
- <span class="count">0</span>
130
+ <span id="txtEnqueued" class="count">0</span>
132
131
  <span class="desc">Enqueued</span>
133
132
  </a>
134
133
  </li>
135
134
  <li class="retries col-sm-1">
136
135
  <a href="/sidekiq/retries">
137
- <span class="count">0</span>
136
+ <span id="txtRetries" class="count">0</span>
138
137
  <span class="desc">Retries</span>
139
138
  </a>
140
139
  </li>
141
140
  <li class="scheduled col-sm-1">
142
141
  <a href="/sidekiq/scheduled">
143
- <span class="count">0</span>
142
+ <span id="txtScheduled" class="count">0</span>
144
143
  <span class="desc">Scheduled</span>
145
144
  </a>
146
145
  </li>
147
146
  <li class="dead col-sm-1">
148
147
  <a href="/sidekiq/morgue">
149
- <span class="count">4</span>
148
+ <span id="txtDead" class="count">4</span>
150
149
  <span class="desc">Dead</span>
151
150
  </a>
152
151
  </li>
@@ -174,7 +173,7 @@
174
173
 
175
174
 
176
175
  <form action="/sidekiq/undertaker/morgue" method="post">
177
- <input type='hidden' name='authenticity_token' value=''/>
176
+ <input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
178
177
  <table class="table table-striped table-bordered table-white">
179
178
  <thead>
180
179
  <tr>
@@ -281,12 +280,12 @@
281
280
  </form>
282
281
 
283
282
  <form action="/sidekiq/undertaker/morgue/all/all/total_dead/delete" method="post">
284
- <input type='hidden' name='authenticity_token' value=''/>
283
+ <input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
285
284
  <input class="btn btn-danger btn-xs pull-right" type="submit" name="delete" value="Bury All" data-confirm="Are you sure?" />
286
285
  </form>
287
286
 
288
287
  <form action="/sidekiq/undertaker/morgue/all/all/total_dead/retry" method="post">
289
- <input type='hidden' name='authenticity_token' value=''/>
288
+ <input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
290
289
  <input class="btn btn-danger btn-xs pull-right" type="submit" name="retry" value="Revive All" data-confirm="Are you sure?" />
291
290
  </form>
292
291
 
@@ -306,7 +305,7 @@
306
305
  <p class="navbar-text redis-url" title="redis://127.0.0.1:6379/0">redis://127.0.0.1:6379/0</p>
307
306
  </li>
308
307
  <li>
309
- <p class="navbar-text server-utc-time">20:57:00 UTC</p>
308
+ <p id="serverUtcTime" class="navbar-text server-utc-time">20:57:00 UTC</p>
310
309
  </li>
311
310
  <li>
312
311
  <p class="navbar-text"><a style="color: gray;" href="https://github.com/mperham/sidekiq/wiki">docs</a></p>
@@ -9,15 +9,16 @@
9
9
 
10
10
 
11
11
  <link href="/sidekiq/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
12
- <link href="/sidekiq/stylesheets/application-dark.css" media="screen" rel="stylesheet" type="text/css" />
12
+ <link href="/sidekiq/stylesheets/application-dark.css" media="screen and (prefers-color-scheme: dark)" rel="stylesheet" type="text/css" />
13
13
 
14
14
 
15
+ <link rel="apple-touch-icon" href="/sidekiq/images/apple-touch-icon.png">
15
16
  <link rel="shortcut icon" type="image/ico" href="/sidekiq/images/favicon.ico" />
16
17
  <script type="text/javascript" src="/sidekiq/javascripts/application.js"></script>
17
18
  <meta name="google" content="notranslate" />
18
19
 
19
20
  </head>
20
- <body class="admin" data-poll-path="" data-locale="en">
21
+ <body class="admin" data-locale="en">
21
22
  <div class="navbar navbar-default navbar-fixed-top">
22
23
  <div class="container-fluid">
23
24
  <div class="navbar-header" data-navbar="static">
@@ -28,9 +29,8 @@
28
29
  </button>
29
30
  <div class="navbar-toggle collapsed navbar-livereload">
30
31
 
31
-
32
- <a id="live-poll" class="btn btn-primary" href="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour?poll=true">Live Poll</a>
33
-
32
+ <a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
33
+ <a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
34
34
 
35
35
 
36
36
 
@@ -94,9 +94,8 @@
94
94
  <li class="navbar-livereload">
95
95
  <div class="poll-wrapper">
96
96
 
97
-
98
- <a id="live-poll" class="btn btn-primary" href="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour?poll=true">Live Poll</a>
99
-
97
+ <a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
98
+ <a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
100
99
 
101
100
 
102
101
 
@@ -113,40 +112,40 @@
113
112
  <div class="col-sm-12 summary_bar">
114
113
  <ul class="list-unstyled summary row">
115
114
  <li class="processed col-sm-1">
116
- <span class="count">0</span>
115
+ <span id="txtProcessed" class="count">0</span>
117
116
  <span class="desc">Processed</span>
118
117
  </li>
119
118
  <li class="failed col-sm-1">
120
- <span class="count">0</span>
119
+ <span id="txtFailed" class="count">0</span>
121
120
  <span class="desc">Failed</span>
122
121
  </li>
123
122
  <li class="busy col-sm-1">
124
123
  <a href="/sidekiq/busy">
125
- <span class="count">0</span>
124
+ <span id="txtBusy" class="count">0</span>
126
125
  <span class="desc">Busy</span>
127
126
  </a>
128
127
  </li>
129
128
  <li class="enqueued col-sm-1">
130
129
  <a href="/sidekiq/queues">
131
- <span class="count">0</span>
130
+ <span id="txtEnqueued" class="count">0</span>
132
131
  <span class="desc">Enqueued</span>
133
132
  </a>
134
133
  </li>
135
134
  <li class="retries col-sm-1">
136
135
  <a href="/sidekiq/retries">
137
- <span class="count">0</span>
136
+ <span id="txtRetries" class="count">0</span>
138
137
  <span class="desc">Retries</span>
139
138
  </a>
140
139
  </li>
141
140
  <li class="scheduled col-sm-1">
142
141
  <a href="/sidekiq/scheduled">
143
- <span class="count">0</span>
142
+ <span id="txtScheduled" class="count">0</span>
144
143
  <span class="desc">Scheduled</span>
145
144
  </a>
146
145
  </li>
147
146
  <li class="dead col-sm-1">
148
147
  <a href="/sidekiq/morgue">
149
- <span class="count">4</span>
148
+ <span id="txtDead" class="count">4</span>
150
149
  <span class="desc">Dead</span>
151
150
  </a>
152
151
  </li>
@@ -174,7 +173,7 @@
174
173
 
175
174
 
176
175
  <form action="/sidekiq/undertaker/morgue" method="post">
177
- <input type='hidden' name='authenticity_token' value=''/>
176
+ <input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
178
177
  <table class="table table-striped table-bordered table-white">
179
178
  <thead>
180
179
  <tr>
@@ -239,12 +238,12 @@
239
238
  </form>
240
239
 
241
240
  <form action="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour/delete" method="post">
242
- <input type='hidden' name='authenticity_token' value=''/>
241
+ <input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
243
242
  <input class="btn btn-danger btn-xs pull-right" type="submit" name="delete" value="Bury All" data-confirm="Are you sure?" />
244
243
  </form>
245
244
 
246
245
  <form action="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour/retry" method="post">
247
- <input type='hidden' name='authenticity_token' value=''/>
246
+ <input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
248
247
  <input class="btn btn-danger btn-xs pull-right" type="submit" name="retry" value="Revive All" data-confirm="Are you sure?" />
249
248
  </form>
250
249
 
@@ -264,7 +263,7 @@
264
263
  <p class="navbar-text redis-url" title="redis://127.0.0.1:6379/0">redis://127.0.0.1:6379/0</p>
265
264
  </li>
266
265
  <li>
267
- <p class="navbar-text server-utc-time">20:57:00 UTC</p>
266
+ <p id="serverUtcTime" class="navbar-text server-utc-time">20:57:00 UTC</p>
268
267
  </li>
269
268
  <li>
270
269
  <p class="navbar-text"><a style="color: gray;" href="https://github.com/mperham/sidekiq/wiki">docs</a></p>
@@ -9,15 +9,16 @@
9
9
 
10
10
 
11
11
  <link href="/sidekiq/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
12
- <link href="/sidekiq/stylesheets/application-dark.css" media="screen" rel="stylesheet" type="text/css" />
12
+ <link href="/sidekiq/stylesheets/application-dark.css" media="screen and (prefers-color-scheme: dark)" rel="stylesheet" type="text/css" />
13
13
 
14
14
 
15
+ <link rel="apple-touch-icon" href="/sidekiq/images/apple-touch-icon.png">
15
16
  <link rel="shortcut icon" type="image/ico" href="/sidekiq/images/favicon.ico" />
16
17
  <script type="text/javascript" src="/sidekiq/javascripts/application.js"></script>
17
18
  <meta name="google" content="notranslate" />
18
19
 
19
20
  </head>
20
- <body class="admin" data-poll-path="" data-locale="en">
21
+ <body class="admin" data-locale="en">
21
22
  <div class="navbar navbar-default navbar-fixed-top">
22
23
  <div class="container-fluid">
23
24
  <div class="navbar-header" data-navbar="static">
@@ -28,9 +29,8 @@
28
29
  </button>
29
30
  <div class="navbar-toggle collapsed navbar-livereload">
30
31
 
31
-
32
- <a id="live-poll" class="btn btn-primary" href="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour?poll=true">Live Poll</a>
33
-
32
+ <a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
33
+ <a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
34
34
 
35
35
 
36
36
 
@@ -94,9 +94,8 @@
94
94
  <li class="navbar-livereload">
95
95
  <div class="poll-wrapper">
96
96
 
97
-
98
- <a id="live-poll" class="btn btn-primary" href="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour?poll=true">Live Poll</a>
99
-
97
+ <a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
98
+ <a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
100
99
 
101
100
 
102
101
 
@@ -113,40 +112,40 @@
113
112
  <div class="col-sm-12 summary_bar">
114
113
  <ul class="list-unstyled summary row">
115
114
  <li class="processed col-sm-1">
116
- <span class="count">0</span>
115
+ <span id="txtProcessed" class="count">0</span>
117
116
  <span class="desc">Processed</span>
118
117
  </li>
119
118
  <li class="failed col-sm-1">
120
- <span class="count">0</span>
119
+ <span id="txtFailed" class="count">0</span>
121
120
  <span class="desc">Failed</span>
122
121
  </li>
123
122
  <li class="busy col-sm-1">
124
123
  <a href="/sidekiq/busy">
125
- <span class="count">0</span>
124
+ <span id="txtBusy" class="count">0</span>
126
125
  <span class="desc">Busy</span>
127
126
  </a>
128
127
  </li>
129
128
  <li class="enqueued col-sm-1">
130
129
  <a href="/sidekiq/queues">
131
- <span class="count">0</span>
130
+ <span id="txtEnqueued" class="count">0</span>
132
131
  <span class="desc">Enqueued</span>
133
132
  </a>
134
133
  </li>
135
134
  <li class="retries col-sm-1">
136
135
  <a href="/sidekiq/retries">
137
- <span class="count">0</span>
136
+ <span id="txtRetries" class="count">0</span>
138
137
  <span class="desc">Retries</span>
139
138
  </a>
140
139
  </li>
141
140
  <li class="scheduled col-sm-1">
142
141
  <a href="/sidekiq/scheduled">
143
- <span class="count">0</span>
142
+ <span id="txtScheduled" class="count">0</span>
144
143
  <span class="desc">Scheduled</span>
145
144
  </a>
146
145
  </li>
147
146
  <li class="dead col-sm-1">
148
147
  <a href="/sidekiq/morgue">
149
- <span class="count">54</span>
148
+ <span id="txtDead" class="count">54</span>
150
149
  <span class="desc">Dead</span>
151
150
  </a>
152
151
  </li>
@@ -192,7 +191,7 @@
192
191
 
193
192
 
194
193
  <form action="/sidekiq/undertaker/morgue" method="post">
195
- <input type='hidden' name='authenticity_token' value=''/>
194
+ <input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
196
195
  <table class="table table-striped table-bordered table-white">
197
196
  <thead>
198
197
  <tr>
@@ -1265,12 +1264,12 @@
1265
1264
  </form>
1266
1265
 
1267
1266
  <form action="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour/delete" method="post">
1268
- <input type='hidden' name='authenticity_token' value=''/>
1267
+ <input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
1269
1268
  <input class="btn btn-danger btn-xs pull-right" type="submit" name="delete" value="Bury All" data-confirm="Are you sure?" />
1270
1269
  </form>
1271
1270
 
1272
1271
  <form action="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour/retry" method="post">
1273
- <input type='hidden' name='authenticity_token' value=''/>
1272
+ <input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
1274
1273
  <input class="btn btn-danger btn-xs pull-right" type="submit" name="retry" value="Revive All" data-confirm="Are you sure?" />
1275
1274
  </form>
1276
1275
 
@@ -1290,7 +1289,7 @@
1290
1289
  <p class="navbar-text redis-url" title="redis://127.0.0.1:6379/0">redis://127.0.0.1:6379/0</p>
1291
1290
  </li>
1292
1291
  <li>
1293
- <p class="navbar-text server-utc-time">20:57:00 UTC</p>
1292
+ <p id="serverUtcTime" class="navbar-text server-utc-time">20:57:00 UTC</p>
1294
1293
  </li>
1295
1294
  <li>
1296
1295
  <p class="navbar-text"><a style="color: gray;" href="https://github.com/mperham/sidekiq/wiki">docs</a></p>
@@ -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"
@@ -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,8 +49,9 @@ 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
 
@@ -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,6 +103,10 @@ 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
@@ -117,6 +132,7 @@ module Sidekiq
117
132
  end
118
133
  end
119
134
  end
135
+ # rubocop:enable RSpec/AnyInstance
120
136
 
121
137
  describe "delete" do
122
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"))