sidekiq-cron 1.6.0 → 1.8.0

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