rspec-enqueue_sidekiq_job 1.0.2 → 1.1.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: d259e0f5317a14c23bcbb2e259afb45c3cc822ed8eade111c723b957048010f9
4
- data.tar.gz: 59b9652a42269fb8c904d5f381801d7ee678ab866f8e5639b14af8e1a2fd267f
3
+ metadata.gz: f436509acb78f1836a7dab2fce161592683da7f6fdb0287e8a9152debf4f2840
4
+ data.tar.gz: 71600a42772b847530ebe42c98b828928da518034fd710580f4350cedeea2d39
5
5
  SHA512:
6
- metadata.gz: 30809f2c8338043ff9dd69bd9764a5089d5a277e8cdfd202ce1dac6afaf304851f44af83476bbda32e8c629975b117e7d55f0e9cfbbe43141867b47f4cdefc0a
7
- data.tar.gz: 432c0d44386e94336362542c00a5ca810916b4860d680cb715f0c3da1ef65175082f49be90f7058c268069a9b8fe07f5f4897c80f6a1915b059dbf84f500bed1
6
+ metadata.gz: 0d60b53a1bb92e5309dd36446fd721fd4f083af1d0d1290fd4155a75280e17e058c093d2152c398213be32f68a395e8a7637a9461a5a7cf4affa29b63ae783d4
7
+ data.tar.gz: 7a631e2b0634ee384b3247f626b3f7f55ea427515cc15bc83b8475839421060974bde1c33866128371883407568401aa63e02c3f20e6b767cea0d398d1fcb7d0
@@ -1,8 +1,9 @@
1
1
  require 'sidekiq/testing'
2
+ require 'active_support/core_ext/hash/indifferent_access'
2
3
 
3
4
  module RSpec
4
5
  # An includable module that provides `enqueue_sidekiq_job` matcher
5
- module EnqueuedSidekiqJob
6
+ module EnqueueSidekiqJob
6
7
  # Checks if a certain job was enqueued in a block.
7
8
  #
8
9
  # expect { AwesomeWorker.perform_async }
@@ -33,6 +34,10 @@ module RSpec
33
34
  end
34
35
 
35
36
  def with(*expected_arguments)
37
+ if expected_arguments.last.is_a?(Hash)
38
+ options = expected_arguments.pop
39
+ expected_arguments.push(options.with_indifferent_access)
40
+ end
36
41
  @expected_arguments = expected_arguments
37
42
  self
38
43
  end
@@ -125,5 +130,5 @@ module RSpec
125
130
  end
126
131
 
127
132
  RSpec.configure do |config|
128
- config.include RSpec::EnqueuedSidekiqJob
133
+ config.include RSpec::EnqueueSidekiqJob
129
134
  end
@@ -1,5 +1,5 @@
1
1
  module RSpec
2
- module EnqueuedSidekiqJob
3
- VERSION = '1.0.2'.freeze
2
+ module EnqueueSidekiqJob
3
+ VERSION = '1.1.0'.freeze
4
4
  end
5
5
  end
@@ -2,7 +2,7 @@ require File.expand_path('lib/rspec/enqueue_sidekiq_job/version', __dir__)
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'rspec-enqueue_sidekiq_job'
5
- s.version = RSpec::EnqueuedSidekiqJob::VERSION
5
+ s.version = RSpec::EnqueueSidekiqJob::VERSION
6
6
  s.platform = Gem::Platform::RUBY
7
7
  s.author = 'Phil Pirozhkov'
8
8
  s.email = 'hello@fili.pp.ru'
@@ -13,15 +13,15 @@ Gem::Specification.new do |s|
13
13
 
14
14
  s.required_ruby_version = '>= 2.4.0'
15
15
 
16
+ s.add_dependency 'activesupport', '~> 5'
16
17
  s.add_dependency 'rspec-core', '~> 3'
17
18
  s.add_dependency 'rspec-expectations', '~> 3'
18
- s.add_dependency 'sidekiq', '>= 2.4.0'
19
+ s.add_dependency 'sidekiq', '~> 3'
19
20
 
20
- s.add_development_dependency 'activesupport'
21
21
  s.add_development_dependency 'rspec'
22
22
  s.add_development_dependency 'rubocop'
23
23
  s.add_development_dependency 'rubocop-rspec'
24
24
 
25
- s.files = %w[LICENSE README.md rspec-enqueue_sidekiq_job.gemspec] + Dir['**/*.rb']
25
+ s.files = %w[LICENSE README.md rspec-enqueue_sidekiq_job.gemspec] + Dir['lib/**/*.rb']
26
26
  s.require_paths = ['lib']
27
27
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-enqueue_sidekiq_job
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Phil Pirozhkov
@@ -11,21 +11,21 @@ cert_chain: []
11
11
  date: 2021-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rspec-core
14
+ name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3'
19
+ version: '5'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '3'
26
+ version: '5'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rspec-expectations
28
+ name: rspec-core
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
@@ -39,33 +39,33 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3'
41
41
  - !ruby/object:Gem::Dependency
42
- name: sidekiq
42
+ name: rspec-expectations
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 2.4.0
47
+ version: '3'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 2.4.0
54
+ version: '3'
55
55
  - !ruby/object:Gem::Dependency
56
- name: activesupport
56
+ name: sidekiq
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
61
+ version: '3'
62
+ type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '3'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -119,8 +119,6 @@ files:
119
119
  - lib/rspec/enqueue_sidekiq_job.rb
120
120
  - lib/rspec/enqueue_sidekiq_job/version.rb
121
121
  - rspec-enqueue_sidekiq_job.gemspec
122
- - spec/rspec/enqueue_sidekiq_job_spec.rb
123
- - spec/spec_helper.rb
124
122
  homepage: http://github.com/pirj/rspec-enqueue_sidekiq_job
125
123
  licenses:
126
124
  - MIT
@@ -140,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
140
138
  - !ruby/object:Gem::Version
141
139
  version: '0'
142
140
  requirements: []
143
- rubygems_version: 3.2.3
141
+ rubygems_version: 3.1.2
144
142
  signing_key:
145
143
  specification_version: 4
146
144
  summary: RSpec matcher to check enqueueing of Sidekiq jobs
@@ -1,196 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe RSpec::EnqueuedSidekiqJob do
4
- let(:worker) do
5
- Class.new do
6
- include ::Sidekiq::Worker
7
- end
8
- end
9
-
10
- let(:another_worker) do
11
- Class.new do
12
- include ::Sidekiq::Worker
13
- end
14
- end
15
-
16
- it 'raises ArgumentError when used in value expectation', pending: 'only fails with ArgumentError on RSpec 4' do
17
- expect {
18
- expect(worker.perform_async).to enqueue_sidekiq_job(worker)
19
- }.to raise_error(ArgumentError)
20
- end
21
-
22
- it 'fails when no worker class is specified' do
23
- expect {
24
- expect { worker.perform_async }.to enqueue_sidekiq_job
25
- }.to raise_error(ArgumentError)
26
- end
27
-
28
- it 'passes' do
29
- expect { worker.perform_async }
30
- .to enqueue_sidekiq_job(worker)
31
- end
32
-
33
- it 'fails when negated and job is enqueued' do
34
- expect {
35
- expect { worker.perform_async }.not_to enqueue_sidekiq_job(worker)
36
- }.to raise_error(/expected not to enqueue/)
37
- end
38
-
39
- context 'when no jobs were enqueued' do
40
- it 'fails' do
41
- expect {
42
- expect {} # nop
43
- .to enqueue_sidekiq_job(worker)
44
- }.to raise_error(/expected to enqueue/)
45
- end
46
-
47
- it 'passes with negation' do
48
- expect {} # nop
49
- .not_to enqueue_sidekiq_job(worker)
50
- end
51
- end
52
-
53
- context 'with another worker' do
54
- it 'fails' do
55
- expect {
56
- expect { worker.perform_async }
57
- .to enqueue_sidekiq_job(another_worker)
58
- }.to raise_error(/expected to enqueue/)
59
- end
60
-
61
- it 'passes with negation' do
62
- expect { worker.perform_async }
63
- .not_to enqueue_sidekiq_job(another_worker)
64
- end
65
- end
66
-
67
- it 'counts only jobs enqueued in block' do
68
- worker.perform_async
69
- expect {}.not_to enqueue_sidekiq_job(worker)
70
- end
71
-
72
- it 'counts jobs enqueued in block' do
73
- worker.perform_async
74
- expect { worker.perform_async }.to enqueue_sidekiq_job(worker)
75
- end
76
-
77
- it 'fails when too many jobs enqueued' do
78
- expect {
79
- expect {
80
- worker.perform_async
81
- worker.perform_async
82
- }.to enqueue_sidekiq_job(worker)
83
- }.to raise_error(/expected to enqueue/)
84
- end
85
-
86
- it 'fails when negated and several jobs enqueued' do
87
- expect {
88
- expect {
89
- worker.perform_async
90
- worker.perform_async
91
- }.not_to enqueue_sidekiq_job(worker)
92
- }.to raise_error(/expected not to enqueue/)
93
- end
94
-
95
- it 'passes with multiple jobs' do
96
- expect {
97
- another_worker.perform_async
98
- worker.perform_async
99
- }
100
- .to enqueue_sidekiq_job(worker)
101
- .and enqueue_sidekiq_job(another_worker)
102
- end
103
-
104
- context 'when enqueued with perform_at' do
105
- it 'passes' do
106
- future = 1.minute.from_now
107
- expect { worker.perform_at(future) }
108
- .to enqueue_sidekiq_job(worker).at(future)
109
- end
110
-
111
- it 'fails when timestamps do not match' do
112
- future = 1.minute.from_now
113
- expect {
114
- expect { worker.perform_at(future) }
115
- .to enqueue_sidekiq_job(worker).at(2.minutes.from_now)
116
- }.to raise_error(/expected to enqueue.+at:/m)
117
- end
118
-
119
- it 'matches timestamps with nanosecond precision' do
120
- 100.times do
121
- future = 1.minute.from_now
122
- future = future.change(nsec: future.nsec.round(-3) + rand(999))
123
- expect { worker.perform_at(future) }
124
- .to enqueue_sidekiq_job(worker).at(future)
125
- end
126
- end
127
-
128
- it 'accepts composable matchers' do
129
- future = 1.minute.from_now
130
- slightly_earlier = 58.seconds.from_now
131
- expect { worker.perform_at(slightly_earlier) }
132
- .to enqueue_sidekiq_job(worker).at(a_value_within(5.seconds).of(future))
133
- end
134
-
135
- it 'fails when the job was enuqued for now' do
136
- expect {
137
- expect { worker.perform_async }
138
- .to enqueue_sidekiq_job(worker).at(1.minute.from_now)
139
- }.to raise_error(/expected to enqueue.+at:/m)
140
- end
141
- end
142
-
143
- context 'when enqueued with perform_in' do
144
- it 'passes' do
145
- interval = 1.minute
146
- expect { worker.perform_in(interval) }
147
- .to enqueue_sidekiq_job(worker).in(interval)
148
- end
149
-
150
- it 'fails when timestamps do not match' do
151
- interval = 1.minute
152
- expect {
153
- expect { worker.perform_in(interval) }
154
- .to enqueue_sidekiq_job(worker).in(2.minutes)
155
- }.to raise_error(/expected to enqueue.+in:/m)
156
- end
157
-
158
- it 'fails when the job was enuqued for now' do
159
- expect {
160
- expect { worker.perform_async }
161
- .to enqueue_sidekiq_job(worker).in(1.minute)
162
- }.to raise_error(/expected to enqueue.+in:/m)
163
- end
164
- end
165
-
166
- it 'matches when not specified at and scheduled for the future' do
167
- expect { worker.perform_in(1.day) }
168
- .to enqueue_sidekiq_job(worker)
169
- expect { worker.perform_at(1.day.from_now) }
170
- .to enqueue_sidekiq_job(worker)
171
- end
172
-
173
- context 'with arguments' do
174
- it 'passes with provided arguments' do
175
- expect { worker.perform_async(42, 'David') }
176
- .to enqueue_sidekiq_job(worker).with(42, 'David')
177
- end
178
-
179
- it 'supports provided argument matchers' do
180
- expect { worker.perform_async(42, 'David') }
181
- .to enqueue_sidekiq_job(worker).with(be > 41, a_string_including('Dav'))
182
- end
183
-
184
- it 'passes when negated and arguments do not match' do
185
- expect { worker.perform_async(42, 'David') }
186
- .not_to enqueue_sidekiq_job(worker).with(11, 'Phil')
187
- end
188
-
189
- it 'fails when arguments do not match' do
190
- expect {
191
- expect { worker.perform_async(42, 'David') }
192
- .to enqueue_sidekiq_job(worker).with(11, 'Phil')
193
- }.to raise_error(/expected to enqueue.+arguments:/m)
194
- end
195
- end
196
- end
data/spec/spec_helper.rb DELETED
@@ -1,4 +0,0 @@
1
- require 'active_support/core_ext/numeric/time'
2
- require 'active_support'
3
- require 'sidekiq'
4
- require 'rspec/enqueue_sidekiq_job'