sidekiq-cron 1.5.1 → 1.12.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.
@@ -1,150 +0,0 @@
1
- require './test/test_helper'
2
-
3
- describe 'Cron Poller' do
4
- before do
5
- REDIS.with { |c| c.respond_to?(:redis) ? c.redis.flushdb : c.flushdb }
6
- Sidekiq.redis = REDIS
7
-
8
- #clear all previous saved data from redis
9
- Sidekiq.redis do |conn|
10
- conn.keys("cron_job*").each do |key|
11
- conn.del(key)
12
- end
13
- end
14
-
15
-
16
- @args = {
17
- name: "Test",
18
- cron: "*/2 * * * *",
19
- klass: "CronTestClass"
20
- }
21
- @args2 = @args.merge(name: 'with_queue', klass: 'CronTestClassWithQueue', cron: "*/10 * * * *")
22
-
23
- @poller = Sidekiq::Cron::Poller.new
24
- end
25
-
26
- it 'not enqueue any job - new jobs' do
27
- now = Time.now.utc + 3600
28
- enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 5, 1)
29
- Time.stubs(:now).returns(enqueued_time)
30
- #new jobs!
31
- Sidekiq::Cron::Job.create(@args)
32
- Sidekiq::Cron::Job.create(@args2)
33
-
34
- @poller.enqueue
35
-
36
- Sidekiq.redis do |conn|
37
- assert_equal 0, conn.llen("queue:default")
38
- assert_equal 0, conn.llen("queue:super")
39
- end
40
-
41
- #30 seconds after!
42
- enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 5, 30)
43
- Time.stubs(:now).returns(enqueued_time)
44
-
45
- @poller.enqueue
46
-
47
- Sidekiq.redis do |conn|
48
- assert_equal 0, conn.llen("queue:default")
49
- assert_equal 0, conn.llen("queue:super")
50
- end
51
- end
52
-
53
- it 'should enqueue only job with cron */2' do
54
- now = Time.now.utc + 3600
55
- enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 5, 1)
56
- Time.stubs(:now).returns(enqueued_time)
57
- #new jobs!
58
- Sidekiq::Cron::Job.create(@args)
59
- Sidekiq::Cron::Job.create(@args2)
60
-
61
- @poller.enqueue
62
-
63
- Sidekiq.redis do |conn|
64
- assert_equal 0, conn.llen("queue:default")
65
- assert_equal 0, conn.llen("queue:super")
66
- end
67
-
68
- enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 6, 1)
69
- Time.stubs(:now).returns(enqueued_time)
70
- @poller.enqueue
71
-
72
- Sidekiq.redis do |conn|
73
- assert_equal 1, conn.llen("queue:default")
74
- assert_equal 0, conn.llen("queue:super")
75
- end
76
- end
77
-
78
- it 'should enqueue both jobs' do
79
- now = Time.now.utc + 3600
80
- enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 8, 1)
81
- Time.stubs(:now).returns(enqueued_time)
82
- #new jobs!
83
- Sidekiq::Cron::Job.create(@args)
84
- Sidekiq::Cron::Job.create(@args2)
85
-
86
- @poller.enqueue
87
-
88
- Sidekiq.redis do |conn|
89
- assert_equal 0, conn.llen("queue:default")
90
- assert_equal 0, conn.llen("queue:super")
91
- end
92
-
93
- enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 10, 5)
94
- Time.stubs(:now).returns(enqueued_time)
95
- @poller.enqueue
96
-
97
- Sidekiq.redis do |conn|
98
- assert_equal 1, conn.llen("queue:default")
99
- assert_equal 1, conn.llen("queue:super")
100
- end
101
- end
102
-
103
- it 'should enqueue both jobs but only one time each' do
104
- now = Time.now.utc + 3600
105
- enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 8, 1)
106
- Time.stubs(:now).returns(enqueued_time)
107
- #new jobs!
108
- Sidekiq::Cron::Job.create(@args)
109
- Sidekiq::Cron::Job.create(@args2)
110
-
111
- @poller.enqueue
112
-
113
- Sidekiq.redis do |conn|
114
- assert_equal 0, conn.llen("queue:default")
115
- assert_equal 0, conn.llen("queue:super")
116
- end
117
-
118
- enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 20, 1)
119
- Time.stubs(:now).returns(enqueued_time)
120
- @poller.enqueue
121
- Sidekiq.redis do |conn|
122
- assert_equal 1, conn.llen("queue:default")
123
- assert_equal 1, conn.llen("queue:super")
124
- end
125
-
126
- enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 20, 2)
127
- Time.stubs(:now).returns(enqueued_time)
128
- @poller.enqueue
129
- Sidekiq.redis do |conn|
130
- assert_equal 1, conn.llen("queue:default")
131
- assert_equal 1, conn.llen("queue:super")
132
- end
133
-
134
- enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 20, 20)
135
- Time.stubs(:now).returns(enqueued_time)
136
- @poller.enqueue
137
- Sidekiq.redis do |conn|
138
- assert_equal 1, conn.llen("queue:default")
139
- assert_equal 1, conn.llen("queue:super")
140
- end
141
-
142
- enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 20, 50)
143
- Time.stubs(:now).returns(enqueued_time)
144
- @poller.enqueue
145
- Sidekiq.redis do |conn|
146
- assert_equal 1, conn.llen("queue:default")
147
- assert_equal 1, conn.llen("queue:super")
148
- end
149
- end
150
- end
@@ -1,156 +0,0 @@
1
- require './test/test_helper'
2
-
3
- describe 'Cron web' do
4
- include Rack::Test::Methods
5
-
6
- TOKEN = SecureRandom.base64(32).freeze
7
-
8
- def app
9
- Sidekiq::Web
10
- end
11
-
12
- before do
13
- env 'rack.session', { csrf: TOKEN }
14
- env 'HTTP_X_CSRF_TOKEN', TOKEN
15
- REDIS.with { |c| c.respond_to?(:redis) ? c.redis.flushdb : c.flushdb }
16
- Sidekiq.redis = REDIS
17
- end
18
-
19
- let(:job_name) { "TestNameOfCronJob" }
20
- let(:cron_job_name) { "TesQueueNameOfCronJob" }
21
-
22
- let(:args) do
23
- {
24
- name: job_name,
25
- cron: "*/2 * * * *",
26
- klass: "CronTestClass"
27
- }
28
- end
29
-
30
- let(:cron_args) do
31
- {
32
- name: cron_job_name,
33
- cron: "*/2 * * * *",
34
- klass: "CronQueueTestClass",
35
- queue: "cron"
36
- }
37
- end
38
-
39
- it 'display cron web' do
40
- get '/cron'
41
- assert_equal 200, last_response.status
42
- end
43
-
44
- it 'display cron web with message - no cron jobs' do
45
- get '/cron'
46
- assert last_response.body.include?('No cron jobs were found')
47
- end
48
-
49
- it 'display cron web with cron jobs table' do
50
- Sidekiq::Cron::Job.create(args)
51
-
52
- get '/cron'
53
- assert_equal 200, last_response.status
54
- refute last_response.body.include?('No cron jobs were found')
55
- assert last_response.body.include?('table')
56
- assert last_response.body.include?("TestNameOfCronJob")
57
- end
58
-
59
- describe "work with cron job" do
60
- before do
61
- @job = Sidekiq::Cron::Job.new(args.merge(status: "enabled"))
62
- assert @job.save
63
-
64
- @cron_job = Sidekiq::Cron::Job.new(cron_args.merge(status: "enabled"))
65
- assert @cron_job.save
66
- end
67
-
68
- it 'shows history of a cron job' do
69
- @job.enque!
70
- get "/cron/#{job_name}"
71
-
72
- jid =
73
- Sidekiq.redis do |conn|
74
- history = conn.lrange Sidekiq::Cron::Job.jid_history_key(job_name), 0, -1
75
- Sidekiq.load_json(history.last)['jid']
76
- end
77
-
78
- assert jid
79
- assert last_response.body.include?(jid)
80
- end
81
-
82
- it 'redirects to cron path when name not found' do
83
- get '/cron/some-fake-name'
84
-
85
- assert_match %r{\/cron\z}, last_response['Location']
86
- end
87
-
88
- it "disable and enable all cron jobs" do
89
- post "/cron/__all__/disable"
90
- assert_equal Sidekiq::Cron::Job.find(job_name).status, "disabled"
91
-
92
- post "/cron/__all__/enable"
93
- assert_equal Sidekiq::Cron::Job.find(job_name).status, "enabled"
94
- end
95
-
96
- it "disable and enable cron job" do
97
- post "/cron/#{job_name}/disable"
98
- assert_equal Sidekiq::Cron::Job.find(job_name).status, "disabled"
99
-
100
- post "/cron/#{job_name}/enable"
101
- assert_equal Sidekiq::Cron::Job.find(job_name).status, "enabled"
102
- end
103
-
104
- it "enqueue all jobs" do
105
- Sidekiq.redis do |conn|
106
- assert_equal 0, conn.llen("queue:default"), "Queue should have no jobs"
107
- end
108
-
109
- post "/cron/__all__/enque"
110
-
111
- Sidekiq.redis do |conn|
112
- assert_equal 1, conn.llen("queue:default"), "Queue should have 1 job in default"
113
- assert_equal 1, conn.llen("queue:cron"), "Queue should have 1 job in cron"
114
- end
115
- end
116
-
117
- it "enqueue job" do
118
- Sidekiq.redis do |conn|
119
- assert_equal 0, conn.llen("queue:default"), "Queue should have no jobs"
120
- end
121
-
122
- post "/cron/#{job_name}/enque"
123
-
124
- Sidekiq.redis do |conn|
125
- assert_equal 1, conn.llen("queue:default"), "Queue should have 1 job"
126
- end
127
-
128
- #should enqueue more times
129
- post "/cron/#{job_name}/enque"
130
-
131
- Sidekiq.redis do |conn|
132
- assert_equal 2, conn.llen("queue:default"), "Queue should have 2 job"
133
- end
134
-
135
- #should enqueue to cron job queue
136
- post "/cron/#{cron_job_name}/enque"
137
-
138
- Sidekiq.redis do |conn|
139
- assert_equal 1, conn.llen("queue:cron"), "Queue should have 1 cron job"
140
- end
141
- end
142
-
143
- it "destroy job" do
144
- assert_equal Sidekiq::Cron::Job.all.size, 2, "Should have 2 job"
145
- post "/cron/#{job_name}/delete"
146
- post "/cron/#{cron_job_name}/delete"
147
- assert_equal Sidekiq::Cron::Job.all.size, 0, "Should have zero jobs"
148
- end
149
-
150
- it "destroy all jobs" do
151
- assert_equal Sidekiq::Cron::Job.all.size, 2, "Should have 2 job"
152
- post "/cron/__all__/delete"
153
- assert_equal Sidekiq::Cron::Job.all.size, 0, "Should have zero jobs"
154
- end
155
- end
156
- end