rspec-sidekiq 5.1.0 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGES.md +9 -0
- data/README.md +13 -5
- data/lib/rspec/sidekiq/batch.rb +3 -3
- data/lib/rspec/sidekiq/helpers.rb +1 -1
- data/lib/rspec/sidekiq/matchers/base.rb +6 -1
- data/lib/rspec/sidekiq/matchers/be_expired_in.rb +1 -1
- data/lib/rspec/sidekiq/matchers/be_unique.rb +9 -5
- data/lib/rspec/sidekiq/matchers/enqueue_sidekiq_job.rb +0 -4
- data/lib/rspec/sidekiq/matchers.rb +9 -9
- data/lib/rspec/sidekiq/version.rb +1 -1
- data/lib/rspec-sidekiq.rb +5 -5
- metadata +17 -56
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47fe73bb71c8962a243f7128bffe68ce0ec5a4c644f1e1bb597723980af806b0
|
4
|
+
data.tar.gz: 0fdfbac81db581526c48fb58741e56eaee011507235538df4a48a66584477c74
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 01a72c5aa64da2033f4efc53000fd52241d120d8c761dd095272b6111807d99ae50746428c5a222c670a8ff573b39a911faeb1a0b3e21b93bfedaa8068f60ec6
|
7
|
+
data.tar.gz: 6d052d8dd15a05a002cbc30a26e81aa61621cc9c8e8ec1789e4b6fdb7174cb74727c81baf9cdbf1727eed951f18b65397718800f90d5adfc067dc5a6d803844f
|
data/CHANGES.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
Unreleased
|
2
2
|
---
|
3
|
+
|
4
|
+
5.2.0
|
5
|
+
---
|
6
|
+
* Add `never` matcher for aliasing `exactly(0)` (#256)
|
7
|
+
* Fix BeProcessedIn matcher behavior for Rails 8 (#237)
|
8
|
+
* Fix `exactly(0)` to not fail when nothing is enqueued (#238)
|
9
|
+
|
10
|
+
5.1.0
|
11
|
+
---
|
3
12
|
* Add `until` matcher for Sidekiq Enterprise unique jobs (#232, #147)
|
4
13
|
* Add `with_context` matcher for matching against job contexts (#222)
|
5
14
|
* Support for Sidekiq 8 (#233)
|
data/README.md
CHANGED
@@ -70,6 +70,9 @@ end
|
|
70
70
|
|
71
71
|
# A specific number of times
|
72
72
|
|
73
|
+
expect { AwesomeJob.perform_async }.to enqueue_sidekiq_job.never
|
74
|
+
expect { AwesomeJob.perform_async }.to enqueue_sidekiq_job.exactly(0)
|
75
|
+
expect { AwesomeJob.perform_async }.to enqueue_sidekiq_job.exactly(0).time
|
73
76
|
expect { AwesomeJob.perform_async }.to enqueue_sidekiq_job.once
|
74
77
|
expect { AwesomeJob.perform_async }.to enqueue_sidekiq_job.exactly(1).time
|
75
78
|
expect { AwesomeJob.perform_async }.to enqueue_sidekiq_job.exactly(:once)
|
@@ -384,26 +387,31 @@ FooClass.within_sidekiq_retries_exhausted_block {
|
|
384
387
|
|
385
388
|
## Testing
|
386
389
|
```
|
387
|
-
bundle exec rspec
|
390
|
+
bundle exec rspec
|
388
391
|
```
|
389
392
|
|
390
393
|
## Maintainers
|
391
|
-
* @wspurgin
|
394
|
+
* [@wspurgin]
|
395
|
+
* [@ydah]
|
392
396
|
|
393
397
|
### Alumni
|
394
398
|
|
395
|
-
* @packrat386
|
396
|
-
* @philostler
|
399
|
+
* [@packrat386]
|
400
|
+
* [@philostler]
|
397
401
|
|
398
402
|
## Contribute
|
399
403
|
Please do! If there's a feature missing that you'd love to see then get in on the action!
|
400
404
|
|
401
405
|
Issues/Pull Requests/Comments all welcome...
|
402
406
|
|
403
|
-
[github]: http://github.com/wspurgin/rspec-sidekiq
|
404
407
|
[github_actions]: https://github.com/wspurgin/rspec-sidekiq/actions
|
405
408
|
[github_actions_badge]: https://github.com/wspurgin/rspec-sidekiq/actions/workflows/main.yml/badge.svg
|
406
409
|
|
407
410
|
[rspec_sidekiq_wiki_faq_&_troubleshooting]: https://github.com/wspurgin/rspec-sidekiq/wiki/FAQ-&-Troubleshooting
|
408
411
|
[sidekiq_wiki_batches]: https://github.com/sidekiq/sidekiq/wiki/Batches
|
409
412
|
[sidekiq_wiki_delayed_extensions]: https://github.com/sidekiq/sidekiq/wiki/Delayed-Extensions
|
413
|
+
|
414
|
+
[@wspurgin]: https://github.com/wspurgin
|
415
|
+
[@ydah]: https://github.com/ydah
|
416
|
+
[@packrat386]: https://github.com/packrat386
|
417
|
+
[@philostler]: https://github.com/philostler
|
data/lib/rspec/sidekiq/batch.rb
CHANGED
@@ -14,7 +14,7 @@ if defined? Sidekiq::Batch
|
|
14
14
|
|
15
15
|
##
|
16
16
|
# Sidekiq::Batch is a Sidekiq::Pro feature. However the general consensus is
|
17
|
-
# that, by
|
17
|
+
# that, by default, you can't test without redis. RSpec::Sidekiq includes
|
18
18
|
# a "null object" pattern implementation to mock Batches. This will mock
|
19
19
|
# Sidekiq::Batch and prevent it from using Redis.
|
20
20
|
#
|
@@ -97,8 +97,8 @@ if defined? Sidekiq::Batch
|
|
97
97
|
if mocked_with_mocha?
|
98
98
|
Sidekiq::Batch.stubs(:new) { RSpec::Sidekiq::NullBatch.new }
|
99
99
|
else
|
100
|
-
allow(Sidekiq::Batch).to receive(:new)
|
101
|
-
allow(Sidekiq::Batch::Status).to receive(:new)
|
100
|
+
allow(Sidekiq::Batch).to receive(:new) { RSpec::Sidekiq::NullBatch.new }
|
101
|
+
allow(Sidekiq::Batch::Status).to receive(:new) { RSpec::Sidekiq::NullStatus.new }
|
102
102
|
end
|
103
103
|
end
|
104
104
|
end
|
@@ -144,7 +144,7 @@ module RSpec
|
|
144
144
|
end
|
145
145
|
|
146
146
|
def minus!(other)
|
147
|
-
self unless other.is_a?(EnqueuedJobs)
|
147
|
+
return self unless other.is_a?(EnqueuedJobs)
|
148
148
|
|
149
149
|
@jobs -= other.jobs
|
150
150
|
|
@@ -214,6 +214,11 @@ module RSpec
|
|
214
214
|
self
|
215
215
|
end
|
216
216
|
|
217
|
+
def never
|
218
|
+
set_expected_count :exactly, 0
|
219
|
+
self
|
220
|
+
end
|
221
|
+
|
217
222
|
def once
|
218
223
|
set_expected_count :exactly, 1
|
219
224
|
self
|
@@ -25,10 +25,10 @@ module RSpec
|
|
25
25
|
|
26
26
|
def failure_message
|
27
27
|
if !interval_matches? && @expected_interval
|
28
|
-
"expected #{@klass} to be unique for #{@expected_interval} seconds, "\
|
28
|
+
"expected #{@klass} to be unique for #{@expected_interval} seconds, " \
|
29
29
|
"but its interval was #{actual_interval} seconds"
|
30
30
|
elsif !expiration_matches?
|
31
|
-
"expected #{@klass} to be unique until #{@expected_expiration}, "\
|
31
|
+
"expected #{@klass} to be unique until #{@expected_expiration}, " \
|
32
32
|
"but its unique_until was #{actual_expiration || 'not specified'}"
|
33
33
|
else
|
34
34
|
"expected #{@klass} to be unique in the queue"
|
@@ -38,7 +38,7 @@ module RSpec
|
|
38
38
|
def matches?(job)
|
39
39
|
@klass = job.is_a?(Class) ? job : job.class
|
40
40
|
@actual = @klass.get_sidekiq_options[unique_key]
|
41
|
-
|
41
|
+
value_matches? && interval_matches? && expiration_matches?
|
42
42
|
end
|
43
43
|
|
44
44
|
def for(interval)
|
@@ -60,7 +60,7 @@ module RSpec
|
|
60
60
|
end
|
61
61
|
|
62
62
|
def expiration_matches?
|
63
|
-
@expected_expiration.nil? || actual_expiration ==
|
63
|
+
@expected_expiration.nil? || actual_expiration == @expected_expiration
|
64
64
|
end
|
65
65
|
|
66
66
|
def failure_message_when_negated
|
@@ -96,7 +96,11 @@ module RSpec
|
|
96
96
|
end
|
97
97
|
|
98
98
|
def value_matches?
|
99
|
-
|
99
|
+
unless @actual
|
100
|
+
false
|
101
|
+
else
|
102
|
+
@actual > 0
|
103
|
+
end
|
100
104
|
end
|
101
105
|
|
102
106
|
def unique_key
|
@@ -5,15 +5,15 @@ require "rspec/matchers"
|
|
5
5
|
require "rspec/mocks/argument_list_matcher"
|
6
6
|
require "rspec/mocks/argument_matchers"
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
8
|
+
require_relative "matchers/base"
|
9
|
+
require_relative "matchers/be_delayed"
|
10
|
+
require_relative "matchers/be_expired_in"
|
11
|
+
require_relative "matchers/be_processed_in"
|
12
|
+
require_relative "matchers/be_retryable"
|
13
|
+
require_relative "matchers/be_unique"
|
14
|
+
require_relative "matchers/have_enqueued_sidekiq_job"
|
15
|
+
require_relative "matchers/save_backtrace"
|
16
|
+
require_relative "matchers/enqueue_sidekiq_job"
|
17
17
|
|
18
18
|
RSpec.configure do |config|
|
19
19
|
config.include RSpec::Sidekiq::Matchers
|
data/lib/rspec-sidekiq.rb
CHANGED
@@ -5,8 +5,8 @@ require 'forwardable'
|
|
5
5
|
require 'sidekiq'
|
6
6
|
require 'sidekiq/testing'
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
8
|
+
require_relative 'rspec/sidekiq/batch'
|
9
|
+
require_relative 'rspec/sidekiq/configuration'
|
10
|
+
require_relative 'rspec/sidekiq/helpers'
|
11
|
+
require_relative 'rspec/sidekiq/matchers'
|
12
|
+
require_relative 'rspec/sidekiq/sidekiq'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-sidekiq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aidan Coyle
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2025-
|
13
|
+
date: 2025-07-19 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rspec-core
|
@@ -27,7 +27,7 @@ dependencies:
|
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
version: '3.0'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
|
-
name: rspec-
|
30
|
+
name: rspec-expectations
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
33
|
- - "~>"
|
@@ -41,7 +41,7 @@ dependencies:
|
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: '3.0'
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
|
-
name: rspec-
|
44
|
+
name: rspec-mocks
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - "~>"
|
@@ -75,49 +75,7 @@ dependencies:
|
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '9'
|
77
77
|
- !ruby/object:Gem::Dependency
|
78
|
-
name:
|
79
|
-
requirement: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - ">="
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '0'
|
84
|
-
type: :development
|
85
|
-
prerelease: false
|
86
|
-
version_requirements: !ruby/object:Gem::Requirement
|
87
|
-
requirements:
|
88
|
-
- - ">="
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
version: '0'
|
91
|
-
- !ruby/object:Gem::Dependency
|
92
|
-
name: pry-doc
|
93
|
-
requirement: !ruby/object:Gem::Requirement
|
94
|
-
requirements:
|
95
|
-
- - ">="
|
96
|
-
- !ruby/object:Gem::Version
|
97
|
-
version: '0'
|
98
|
-
type: :development
|
99
|
-
prerelease: false
|
100
|
-
version_requirements: !ruby/object:Gem::Requirement
|
101
|
-
requirements:
|
102
|
-
- - ">="
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
version: '0'
|
105
|
-
- !ruby/object:Gem::Dependency
|
106
|
-
name: pry-nav
|
107
|
-
requirement: !ruby/object:Gem::Requirement
|
108
|
-
requirements:
|
109
|
-
- - ">="
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: '0'
|
112
|
-
type: :development
|
113
|
-
prerelease: false
|
114
|
-
version_requirements: !ruby/object:Gem::Requirement
|
115
|
-
requirements:
|
116
|
-
- - ">="
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
version: '0'
|
119
|
-
- !ruby/object:Gem::Dependency
|
120
|
-
name: rspec
|
78
|
+
name: actionmailer
|
121
79
|
requirement: !ruby/object:Gem::Requirement
|
122
80
|
requirements:
|
123
81
|
- - ">="
|
@@ -131,7 +89,7 @@ dependencies:
|
|
131
89
|
- !ruby/object:Gem::Version
|
132
90
|
version: '0'
|
133
91
|
- !ruby/object:Gem::Dependency
|
134
|
-
name:
|
92
|
+
name: activejob
|
135
93
|
requirement: !ruby/object:Gem::Requirement
|
136
94
|
requirements:
|
137
95
|
- - ">="
|
@@ -145,7 +103,7 @@ dependencies:
|
|
145
103
|
- !ruby/object:Gem::Version
|
146
104
|
version: '0'
|
147
105
|
- !ruby/object:Gem::Dependency
|
148
|
-
name:
|
106
|
+
name: activemodel
|
149
107
|
requirement: !ruby/object:Gem::Requirement
|
150
108
|
requirements:
|
151
109
|
- - ">="
|
@@ -159,7 +117,7 @@ dependencies:
|
|
159
117
|
- !ruby/object:Gem::Version
|
160
118
|
version: '0'
|
161
119
|
- !ruby/object:Gem::Dependency
|
162
|
-
name:
|
120
|
+
name: activerecord
|
163
121
|
requirement: !ruby/object:Gem::Requirement
|
164
122
|
requirements:
|
165
123
|
- - ">="
|
@@ -173,7 +131,7 @@ dependencies:
|
|
173
131
|
- !ruby/object:Gem::Version
|
174
132
|
version: '0'
|
175
133
|
- !ruby/object:Gem::Dependency
|
176
|
-
name:
|
134
|
+
name: activesupport
|
177
135
|
requirement: !ruby/object:Gem::Requirement
|
178
136
|
requirements:
|
179
137
|
- - ">="
|
@@ -187,7 +145,7 @@ dependencies:
|
|
187
145
|
- !ruby/object:Gem::Version
|
188
146
|
version: '0'
|
189
147
|
- !ruby/object:Gem::Dependency
|
190
|
-
name:
|
148
|
+
name: debug
|
191
149
|
requirement: !ruby/object:Gem::Requirement
|
192
150
|
requirements:
|
193
151
|
- - ">="
|
@@ -201,7 +159,7 @@ dependencies:
|
|
201
159
|
- !ruby/object:Gem::Version
|
202
160
|
version: '0'
|
203
161
|
- !ruby/object:Gem::Dependency
|
204
|
-
name:
|
162
|
+
name: ostruct
|
205
163
|
requirement: !ruby/object:Gem::Requirement
|
206
164
|
requirements:
|
207
165
|
- - ">="
|
@@ -215,7 +173,7 @@ dependencies:
|
|
215
173
|
- !ruby/object:Gem::Version
|
216
174
|
version: '0'
|
217
175
|
- !ruby/object:Gem::Dependency
|
218
|
-
name:
|
176
|
+
name: railties
|
219
177
|
requirement: !ruby/object:Gem::Requirement
|
220
178
|
requirements:
|
221
179
|
- - ">="
|
@@ -229,7 +187,7 @@ dependencies:
|
|
229
187
|
- !ruby/object:Gem::Version
|
230
188
|
version: '0'
|
231
189
|
- !ruby/object:Gem::Dependency
|
232
|
-
name:
|
190
|
+
name: rspec
|
233
191
|
requirement: !ruby/object:Gem::Requirement
|
234
192
|
requirements:
|
235
193
|
- - ">="
|
@@ -272,7 +230,10 @@ homepage: http://github.com/wspurgin/rspec-sidekiq
|
|
272
230
|
licenses:
|
273
231
|
- MIT
|
274
232
|
metadata:
|
275
|
-
|
233
|
+
homepage_uri: http://github.com/wspurgin/rspec-sidekiq
|
234
|
+
source_code_uri: http://github.com/wspurgin/rspec-sidekiq
|
235
|
+
changelog_uri: http://github.com/wspurgin/rspec-sidekiq/blob/main/CHANGES.md
|
236
|
+
bug_tracker_uri: http://github.com/wspurgin/rspec-sidekiq/issues
|
276
237
|
post_install_message:
|
277
238
|
rdoc_options: []
|
278
239
|
require_paths:
|