rspec-enqueue_sidekiq_job 1.0.2 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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'