sidekiq-cron 1.6.0 → 1.8.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.
@@ -0,0 +1,33 @@
1
+ require './test/test_helper'
2
+
3
+ describe 'Cron launcher' do
4
+ describe 'initialization' do
5
+ before do
6
+ Sidekiq[:cron_poll_interval] = nil
7
+ end
8
+
9
+ it 'initializes poller with default poll interval when not configured' do
10
+ Sidekiq::Cron::Poller.expects(:new).with do |options|
11
+ assert_equal Sidekiq::Cron::Launcher::DEFAULT_POLL_INTERVAL, options[:cron_poll_interval]
12
+ end
13
+
14
+ Sidekiq::Launcher.new(Sidekiq)
15
+ end
16
+
17
+ it 'initializes poller with the configured poll interval' do
18
+ Sidekiq::Cron::Poller.expects(:new).with do |options|
19
+ assert_equal 99, options[:cron_poll_interval]
20
+ end
21
+
22
+ Sidekiq[:cron_poll_interval] = 99
23
+ Sidekiq::Launcher.new(Sidekiq)
24
+ end
25
+
26
+ it 'does not initialize the poller when interval is 0' do
27
+ Sidekiq::Cron::Poller.expects(:new).never
28
+
29
+ Sidekiq[:cron_poll_interval] = 0
30
+ Sidekiq::Launcher.new(Sidekiq)
31
+ end
32
+ end
33
+ end
@@ -5,7 +5,7 @@ describe 'Cron Poller' do
5
5
  REDIS.with { |c| c.respond_to?(:redis) ? c.redis.flushdb : c.flushdb }
6
6
  Sidekiq.redis = REDIS
7
7
 
8
- #clear all previous saved data from redis
8
+ # Clear all previous saved data from Redis.
9
9
  Sidekiq.redis do |conn|
10
10
  conn.keys("cron_job*").each do |key|
11
11
  conn.del(key)
@@ -27,7 +27,7 @@ describe 'Cron Poller' do
27
27
  now = Time.now.utc + 3600
28
28
  enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 5, 1)
29
29
  Time.stubs(:now).returns(enqueued_time)
30
- #new jobs!
30
+
31
31
  Sidekiq::Cron::Job.create(@args)
32
32
  Sidekiq::Cron::Job.create(@args2)
33
33
 
@@ -38,7 +38,7 @@ describe 'Cron Poller' do
38
38
  assert_equal 0, conn.llen("queue:super")
39
39
  end
40
40
 
41
- #30 seconds after!
41
+ # 30 seconds after!
42
42
  enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 5, 30)
43
43
  Time.stubs(:now).returns(enqueued_time)
44
44
 
@@ -54,7 +54,7 @@ describe 'Cron Poller' do
54
54
  now = Time.now.utc + 3600
55
55
  enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 5, 1)
56
56
  Time.stubs(:now).returns(enqueued_time)
57
- #new jobs!
57
+
58
58
  Sidekiq::Cron::Job.create(@args)
59
59
  Sidekiq::Cron::Job.create(@args2)
60
60
 
@@ -79,7 +79,7 @@ describe 'Cron Poller' do
79
79
  now = Time.now.utc + 3600
80
80
  enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 8, 1)
81
81
  Time.stubs(:now).returns(enqueued_time)
82
- #new jobs!
82
+
83
83
  Sidekiq::Cron::Job.create(@args)
84
84
  Sidekiq::Cron::Job.create(@args2)
85
85
 
@@ -104,7 +104,7 @@ describe 'Cron Poller' do
104
104
  now = Time.now.utc + 3600
105
105
  enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 8, 1)
106
106
  Time.stubs(:now).returns(enqueued_time)
107
- #new jobs!
107
+
108
108
  Sidekiq::Cron::Job.create(@args)
109
109
  Sidekiq::Cron::Job.create(@args2)
110
110
 
@@ -0,0 +1,45 @@
1
+ require './test/test_helper'
2
+
3
+ describe 'ScheduleLoader' do
4
+ before do
5
+ Sidekiq.options[:lifecycle_events][:startup].clear
6
+ end
7
+
8
+ describe 'Schedule is defined in hash' do
9
+ before do
10
+ Sidekiq::Options[:cron_schedule_file] = 'test/unit/fixtures/schedule_hash.yml'
11
+ load 'sidekiq/cron/schedule_loader.rb'
12
+ end
13
+
14
+ it 'calls Sidekiq::Cron::Job.load_from_hash' do
15
+ Sidekiq::Cron::Job.expects(:load_from_hash)
16
+ Sidekiq.options[:lifecycle_events][:startup].first.call
17
+ end
18
+ end
19
+
20
+ describe 'Schedule is defined in array' do
21
+ before do
22
+ Sidekiq::Options[:cron_schedule_file] = 'test/unit/fixtures/schedule_array.yml'
23
+ load 'sidekiq/cron/schedule_loader.rb'
24
+ end
25
+
26
+ it 'calls Sidekiq::Cron::Job.load_from_array' do
27
+ Sidekiq::Cron::Job.expects(:load_from_array)
28
+ Sidekiq.options[:lifecycle_events][:startup].first.call
29
+ end
30
+ end
31
+
32
+ describe 'Schedule is not defined in hash nor array' do
33
+ before do
34
+ Sidekiq::Options[:cron_schedule_file] = 'test/unit/fixtures/schedule_string.yml'
35
+ load 'sidekiq/cron/schedule_loader.rb'
36
+ end
37
+
38
+ it 'raises an error' do
39
+ e = assert_raises StandardError do
40
+ Sidekiq.options[:lifecycle_events][:startup].first.call
41
+ end
42
+ assert_equal 'Not supported schedule format. Confirm your test/unit/fixtures/schedule_string.yml', e.message
43
+ end
44
+ end
45
+ end
@@ -125,14 +125,14 @@ describe 'Cron web' do
125
125
  assert_equal 1, conn.llen("queue:default"), "Queue should have 1 job"
126
126
  end
127
127
 
128
- #should enqueue more times
128
+ # Should enqueue more times.
129
129
  post "/cron/#{job_name}/enque"
130
130
 
131
131
  Sidekiq.redis do |conn|
132
132
  assert_equal 2, conn.llen("queue:default"), "Queue should have 2 job"
133
133
  end
134
134
 
135
- #should enqueue to cron job queue
135
+ # Should enqueue to cron job queue.
136
136
  post "/cron/#{cron_job_name}/enque"
137
137
 
138
138
  Sidekiq.redis do |conn|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-cron
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ondrej Bartas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-30 00:00:00.000000000 Z
11
+ date: 2022-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fugit
@@ -136,7 +136,8 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0.21'
139
- description: Enables to set jobs to be run in specified time (using CRON notation)
139
+ description: Enables to set jobs to be run in specified time (using CRON notation
140
+ or natural language)
140
141
  email: ondrej@bartas.cz
141
142
  executables: []
142
143
  extensions: []
@@ -155,6 +156,7 @@ files:
155
156
  - lib/sidekiq/cron/launcher.rb
156
157
  - lib/sidekiq/cron/locales/de.yml
157
158
  - lib/sidekiq/cron/locales/en.yml
159
+ - lib/sidekiq/cron/locales/it.yml
158
160
  - lib/sidekiq/cron/locales/ja.yml
159
161
  - lib/sidekiq/cron/locales/pt.yml
160
162
  - lib/sidekiq/cron/locales/ru.yml
@@ -167,11 +169,17 @@ files:
167
169
  - lib/sidekiq/cron/views/cron_show.erb
168
170
  - lib/sidekiq/cron/web.rb
169
171
  - lib/sidekiq/cron/web_extension.rb
172
+ - lib/sidekiq/options.rb
170
173
  - sidekiq-cron.gemspec
171
174
  - test/integration/performance_test.rb
172
175
  - test/test_helper.rb
176
+ - test/unit/fixtures/schedule_array.yml
177
+ - test/unit/fixtures/schedule_hash.yml
178
+ - test/unit/fixtures/schedule_string.yml
173
179
  - test/unit/job_test.rb
180
+ - test/unit/launcher_test.rb
174
181
  - test/unit/poller_test.rb
182
+ - test/unit/schedule_loader_test.rb
175
183
  - test/unit/web_extension_test.rb
176
184
  homepage: https://github.com/ondrejbartas/sidekiq-cron
177
185
  licenses:
@@ -192,8 +200,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
200
  - !ruby/object:Gem::Version
193
201
  version: '0'
194
202
  requirements: []
195
- rubygems_version: 3.1.4
203
+ rubygems_version: 3.1.6
196
204
  signing_key:
197
205
  specification_version: 4
198
- summary: Sidekiq-Cron helps to add repeated scheduled jobs
206
+ summary: Scheduler/Cron for Sidekiq jobs
199
207
  test_files: []