rspec-sidekiq_pro 1.1.0 → 1.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2cd253da9eb5bb4e1bbb68a9bf9c2453f200e2743120b1730f82bc9c51c346ab
4
- data.tar.gz: 63e909c970b1f4d29d1334f14b721a9c12478ca02cfef5d829d5046cea1ba733
3
+ metadata.gz: 9c17791f8aa93dfb4980ced725dc7469ffb056be113a035fc1586ef278116d83
4
+ data.tar.gz: 1aa9429f684ee980239144b919c3dc5912bac6a5bbb4c4958fd53c6a0f1f08b4
5
5
  SHA512:
6
- metadata.gz: ec44fdba876447f815815d3f9bf510876aca1be41fe0324102fff0828285d3a9b214825c9c79966b342e42e4d109c2487052d33aa1cd99c0fff69c34253a5dc0
7
- data.tar.gz: c2692d557e4d997d3c17b895b7db57ca841b729bb643bbd2e1b8dfe3af410a80f959aee8db786e81d3787d282ec2f5a04a3f9dc5ac401bacf29fee08b3352d6a
6
+ metadata.gz: b99e17cb692da23642dc8f988f339cf419783207143bd6871f285ad30a96a34ea8a69115924c657aecc96decd48c2fda88d21ad106e90c1896bed3a797e91b00
7
+ data.tar.gz: 6091324c106b4472dcd44a6b17ced626d8a4431d444857505851caae2eb4e398f53ca64bb2d27d7ecd42af22002646f2cc0a93c3c0fdcf25649f85a34d3fcf18
data/README.md CHANGED
@@ -55,7 +55,11 @@ Both matchers provide the same chainable methods:
55
55
  * `.with`
56
56
  * `.once`
57
57
  * `.twice`
58
- * `.exactly().times`
58
+ * `.exactly(n).times`
59
+ * `.more_than(n).times`
60
+ * `.less_than(n).times`
61
+ * `.at_least(n).times`
62
+ * `.at_most(n).times`
59
63
  * `.in`
60
64
  * `.at`
61
65
  * `.within_batch`
@@ -103,6 +107,14 @@ it do
103
107
  end
104
108
  ```
105
109
 
110
+ ```ruby
111
+ it do
112
+ expect {
113
+ 10.times { SampleJob.perform_async }
114
+ }.to enqueue_sidekiq_job(SampleJob).more_than(5).times
115
+ end
116
+ ```
117
+
106
118
  Be careful when checking both counts and arguments:
107
119
 
108
120
  ```ruby
@@ -89,7 +89,7 @@ module Sidekiq
89
89
  @bid = bid || SecureRandom.urlsafe_base64(10)
90
90
  props = RSpec::SidekiqPro::Batches::Props.fetch(bid, {})
91
91
 
92
- @created_at = props.fetch("created_at", Time.now.utc).to_f
92
+ @created_f = @created_at = props.fetch("created_at", Time.now.utc).to_f
93
93
  @description = props["description"]
94
94
  @parent_bid = props["parent"]
95
95
  @callbacks = props.fetch("callbacks", {})
@@ -125,9 +125,8 @@ module Sidekiq
125
125
  end
126
126
 
127
127
  def invalidate_jids(*jids)
128
- return super if Sidekiq::Testing.disabled?
129
-
130
128
  # TODO
129
+ # return super if Sidekiq::Testing.disabled?
131
130
  end
132
131
 
133
132
  def invalidated?
@@ -12,6 +12,10 @@ module RSpec
12
12
  :expected_timestamp,
13
13
  :expected_schedule,
14
14
  :expected_count,
15
+ :expected_least_count,
16
+ :expected_most_count,
17
+ :expected_more_count,
18
+ :expected_less_count,
15
19
  :expected_without_batch,
16
20
  :expected_batch,
17
21
  :actual_jobs
@@ -52,8 +56,28 @@ module RSpec
52
56
  exactly(2)
53
57
  end
54
58
 
55
- def exactly(times)
56
- @expected_count = times
59
+ def exactly(count)
60
+ @expected_count = count
61
+ self
62
+ end
63
+
64
+ def at_least(count)
65
+ @expected_least_count = count
66
+ self
67
+ end
68
+
69
+ def at_most(count)
70
+ @expected_most_count = count
71
+ self
72
+ end
73
+
74
+ def more_than(count)
75
+ @expected_more_count = count
76
+ self
77
+ end
78
+
79
+ def less_than(count)
80
+ @expected_less_count = count
57
81
  self
58
82
  end
59
83
 
@@ -89,6 +113,14 @@ module RSpec
89
113
 
90
114
  if expected_count
91
115
  filtered_jobs.count == expected_count
116
+ elsif expected_least_count
117
+ filtered_jobs.count >= expected_least_count
118
+ elsif expected_most_count
119
+ filtered_jobs.count <= expected_most_count
120
+ elsif expected_more_count
121
+ filtered_jobs.count > expected_more_count
122
+ elsif expected_less_count
123
+ filtered_jobs.count < expected_less_count
92
124
  else
93
125
  filtered_jobs.any?
94
126
  end
@@ -100,6 +132,14 @@ module RSpec
100
132
 
101
133
  if expected_count
102
134
  filtered_jobs.count != expected_count
135
+ elsif expected_least_count
136
+ raise ArgumentError, "ambiguous `at_least` matcher used with negative form"
137
+ elsif expected_most_count
138
+ raise ArgumentError, "ambiguous `at_most` matcher used with negative form"
139
+ elsif expected_more_count
140
+ filtered_jobs.count < expected_more_count
141
+ elsif expected_less_count
142
+ filtered_jobs.count > expected_less_count
103
143
  else
104
144
  filtered_jobs.empty?
105
145
  end
@@ -122,6 +162,14 @@ module RSpec
122
162
  description += " twice"
123
163
  elsif expected_count
124
164
  description += " #{expected_count} times"
165
+ elsif expected_least_count
166
+ description += " at least #{expected_least_count} times"
167
+ elsif expected_most_count
168
+ description += " at most #{expected_most_count} times"
169
+ elsif expected_more_count
170
+ description += " more than #{expected_more_count} times"
171
+ elsif expected_less_count
172
+ description += " less than #{expected_less_count} times"
125
173
  end
126
174
 
127
175
  if expected_arguments.is_a?(Proc)
@@ -160,6 +208,10 @@ module RSpec
160
208
  def expectations_in_failure_message
161
209
  message = []
162
210
  message << " exactly: #{expected_count} time(s)" if expected_count
211
+ message << " at least: #{expected_least_count} time(s)" if expected_least_count
212
+ message << " at most: #{expected_most_count} time(s)" if expected_most_count
213
+ message << " more than: #{expected_more_count} time(s)" if expected_more_count
214
+ message << " less than: #{expected_less_count} time(s)" if expected_less_count
163
215
  message << " arguments: #{expected_arguments}" if expected_arguments
164
216
  message << " in: #{expected_interval_output}" if expected_interval
165
217
  message << " at: #{expected_timestamp}" if expected_timestamp
@@ -18,13 +18,11 @@ module RSpec
18
18
  # expect(AwesomeWorker).to have_enqueued_sidekiq_job.in(5.minutes)
19
19
  #
20
20
  def have_enqueued_sidekiq_job
21
- HaveEnqueuedSidekiqJobs.new.once
22
- end
23
-
24
- def have_enqueued_sidekiq_jobs
25
21
  HaveEnqueuedSidekiqJobs.new
26
22
  end
27
23
 
24
+ alias_method :have_enqueued_sidekiq_jobs, :have_enqueued_sidekiq_job
25
+
28
26
  # Checks if a certain job was enqueued in a block.
29
27
  #
30
28
  # expect { AwesomeWorker.perform_async }
@@ -37,12 +35,10 @@ module RSpec
37
35
  # .to enqueue_sidekiq_job(AwesomeWorker).in(5.minutes)
38
36
  #
39
37
  def enqueue_sidekiq_job(worker_class)
40
- EnqueueSidekiqJobs.new(worker_class).once
41
- end
42
-
43
- def enqueue_sidekiq_jobs(worker_class)
44
38
  EnqueueSidekiqJobs.new(worker_class)
45
39
  end
40
+
41
+ alias_method :enqueue_sidekiq_jobs, :enqueue_sidekiq_job
46
42
  end
47
43
  end
48
44
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RSpec
4
4
  module SidekiqPro
5
- VERSION = "1.1.0"
5
+ VERSION = "1.3.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-sidekiq_pro
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Savater Sebastien
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2022-11-16 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activesupport
@@ -19,7 +18,7 @@ dependencies:
19
18
  version: '6.0'
20
19
  - - "<"
21
20
  - !ruby/object:Gem::Version
22
- version: '8'
21
+ version: '9'
23
22
  type: :runtime
24
23
  prerelease: false
25
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +28,7 @@ dependencies:
29
28
  version: '6.0'
30
29
  - - "<"
31
30
  - !ruby/object:Gem::Version
32
- version: '8'
31
+ version: '9'
33
32
  - !ruby/object:Gem::Dependency
34
33
  name: rspec
35
34
  requirement: !ruby/object:Gem::Requirement
@@ -53,7 +52,7 @@ dependencies:
53
52
  version: '6.5'
54
53
  - - "<"
55
54
  - !ruby/object:Gem::Version
56
- version: '8'
55
+ version: '9'
57
56
  type: :runtime
58
57
  prerelease: false
59
58
  version_requirements: !ruby/object:Gem::Requirement
@@ -63,7 +62,7 @@ dependencies:
63
62
  version: '6.5'
64
63
  - - "<"
65
64
  - !ruby/object:Gem::Version
66
- version: '8'
65
+ version: '9'
67
66
  - !ruby/object:Gem::Dependency
68
67
  name: sidekiq-pro
69
68
  requirement: !ruby/object:Gem::Requirement
@@ -73,7 +72,7 @@ dependencies:
73
72
  version: '5.5'
74
73
  - - "<"
75
74
  - !ruby/object:Gem::Version
76
- version: '8'
75
+ version: '9'
77
76
  type: :runtime
78
77
  prerelease: false
79
78
  version_requirements: !ruby/object:Gem::Requirement
@@ -83,7 +82,7 @@ dependencies:
83
82
  version: '5.5'
84
83
  - - "<"
85
84
  - !ruby/object:Gem::Version
86
- version: '8'
85
+ version: '9'
87
86
  - !ruby/object:Gem::Dependency
88
87
  name: zeitwerk
89
88
  requirement: !ruby/object:Gem::Requirement
@@ -98,7 +97,7 @@ dependencies:
98
97
  - - "~>"
99
98
  - !ruby/object:Gem::Version
100
99
  version: '2.6'
101
- description:
100
+ description: A collection of RSpec matchers for Sidekiq Pro
102
101
  email: github.60k5k@simplelogin.co
103
102
  executables: []
104
103
  extensions: []
@@ -117,7 +116,6 @@ homepage: http://github.com/inkstak/rspec-sidekiq_pro
117
116
  licenses:
118
117
  - MIT
119
118
  metadata: {}
120
- post_install_message:
121
119
  rdoc_options: []
122
120
  require_paths:
123
121
  - lib
@@ -132,8 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
130
  - !ruby/object:Gem::Version
133
131
  version: '0'
134
132
  requirements: []
135
- rubygems_version: 3.1.6
136
- signing_key:
133
+ rubygems_version: 3.6.7
137
134
  specification_version: 4
138
- summary: A collection of tools and matchers for Sidekiq Pro
135
+ summary: A collection of RSpec matchers for Sidekiq Pro
139
136
  test_files: []