sidekiq-cron 1.2.0 → 1.7.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,16 +1,15 @@
1
- # -*- encoding : utf-8 -*-
2
1
  require './test/test_helper'
3
2
 
4
3
  describe "Cron Job" do
5
4
  before do
6
- #clear all previous saved data from redis
5
+ # Clear all previous saved data from Redis.
7
6
  Sidekiq.redis do |conn|
8
7
  conn.keys("cron_job*").each do |key|
9
8
  conn.del(key)
10
9
  end
11
10
  end
12
11
 
13
- #clear all queues
12
+ # Clear all queues.
14
13
  Sidekiq::Queue.all.each do |queue|
15
14
  queue.clear
16
15
  end
@@ -76,7 +75,6 @@ describe "Cron Job" do
76
75
  end
77
76
 
78
77
  describe "invalid job" do
79
-
80
78
  before do
81
79
  @job = Sidekiq::Cron::Job.new()
82
80
  end
@@ -131,6 +129,22 @@ describe "Cron Job" do
131
129
  end
132
130
  end
133
131
 
132
+ describe 'cron formats' do
133
+ before do
134
+ @args = {
135
+ name: "Test",
136
+ klass: "CronTestClass"
137
+ }
138
+ end
139
+
140
+ it 'should support natural language format' do
141
+ @args[:cron] = "every 3 hours"
142
+ @job = Sidekiq::Cron::Job.new(@args)
143
+ assert @job.valid?
144
+ assert_equal Fugit::Cron.new("0 */3 * * *"), @job.send(:parsed_cron)
145
+ end
146
+ end
147
+
134
148
  describe 'parse_enqueue_time' do
135
149
  before do
136
150
  @args = {
@@ -233,8 +247,11 @@ describe "Cron Job" do
233
247
  "queue"=>:super,
234
248
  "backtrace"=>true,
235
249
  "class"=>"CronTestClassWithQueue"}
236
- assert job_args[-1].is_a?(Float)
237
- assert job_args[-1].between?(Time.now.to_f - 1, Time.now.to_f)
250
+ assert job_args.empty?
251
+
252
+ enqueue_args = job.enqueue_args
253
+ assert enqueue_args[-1].is_a?(Float)
254
+ assert enqueue_args[-1].between?(Time.now.to_f - 1, Time.now.to_f)
238
255
  end
239
256
 
240
257
  it "be initialized with 'class', 2 arguments and date_as_argument" do
@@ -246,11 +263,13 @@ describe "Cron Job" do
246
263
  "queue"=>:super,
247
264
  "backtrace"=>true,
248
265
  "class"=>"CronTestClassWithQueue"}
249
- assert job_args[-1].is_a?(Float)
250
- assert job_args[-1].between?(Time.now.to_f - 1, Time.now.to_f)
251
- assert_equal job_args[0..-2], ["arg1", :arg2]
252
- end
266
+ assert_equal job_args, ["arg1", :arg2]
253
267
 
268
+ enqueue_args = job.enqueue_args
269
+ assert_equal enqueue_args[0..-2], ["arg1", :arg2]
270
+ assert enqueue_args[-1].is_a?(Float)
271
+ assert enqueue_args[-1].between?(Time.now.to_f - 1, Time.now.to_f)
272
+ end
254
273
  end
255
274
 
256
275
  describe "cron test" do
@@ -304,6 +323,21 @@ describe "Cron Job" do
304
323
  }
305
324
  assert_equal @job.sidekiq_worker_message, payload
306
325
  end
326
+
327
+ describe 'with date_as_argument' do
328
+ before do
329
+ @args.merge!(date_as_argument: true)
330
+ @job = Sidekiq::Cron::Job.new(@args)
331
+ end
332
+
333
+ let(:args) { @job.sidekiq_worker_message['args'] }
334
+
335
+ it 'should add timestamp to args' do
336
+ assert_equal args[0], {foo: 'bar'}
337
+ assert args[-1].is_a?(Float)
338
+ assert args[-1].between?(Time.now.to_f - 1, Time.now.to_f)
339
+ end
340
+ end
307
341
  end
308
342
 
309
343
  describe '#sidekiq_worker_message settings overwrite queue name' do
@@ -361,6 +395,124 @@ describe "Cron Job" do
361
395
  }
362
396
  assert_equal @job.active_job_message, payload
363
397
  end
398
+
399
+ describe 'with date_as_argument' do
400
+ before do
401
+ @args.merge!(date_as_argument: true)
402
+ @job = Sidekiq::Cron::Job.new(@args)
403
+ end
404
+
405
+ let(:args) { @job.active_job_message['args'][0]['arguments'] }
406
+
407
+ it 'should add timestamp to args' do
408
+ args = @job.active_job_message['args'][0]['arguments']
409
+ assert_equal args[0], {foo: 'bar'}
410
+ assert args[-1].is_a?(Float)
411
+ assert args[-1].between?(Time.now.to_f - 1, Time.now.to_f)
412
+ end
413
+ end
414
+ end
415
+
416
+ describe '#active_job_message - unknown Active Job Worker class' do
417
+ before do
418
+ SecureRandom.stubs(:uuid).returns('XYZ')
419
+ ActiveJob::Base.queue_name_prefix = ''
420
+
421
+ @args = {
422
+ name: 'Test',
423
+ cron: '* * * * *',
424
+ klass: 'UnknownActiveJobCronTestClass',
425
+ active_job: true,
426
+ queue: 'super_queue',
427
+ description: nil,
428
+ args: { foo: 'bar' }
429
+ }
430
+ @job = Sidekiq::Cron::Job.new(@args)
431
+ end
432
+
433
+ it 'should return valid payload for Sidekiq::Client' do
434
+ payload = {
435
+ 'class' => 'ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper',
436
+ 'wrapped' => 'UnknownActiveJobCronTestClass',
437
+ 'queue' => 'super_queue',
438
+ 'description' => nil,
439
+ 'args' => [{
440
+ 'job_class' => 'UnknownActiveJobCronTestClass',
441
+ 'job_id' => 'XYZ',
442
+ 'queue_name' => 'super_queue',
443
+ 'arguments' => [{foo: 'bar'}]
444
+ }]
445
+ }
446
+ assert_equal @job.active_job_message, payload
447
+ end
448
+ end
449
+
450
+ describe '#active_job_message with symbolize_args (hash)' do
451
+ before do
452
+ SecureRandom.stubs(:uuid).returns('XYZ')
453
+ ActiveJob::Base.queue_name_prefix = ''
454
+
455
+ @args = {
456
+ name: 'Test',
457
+ cron: '* * * * *',
458
+ klass: 'ActiveJobCronTestClass',
459
+ queue: 'super_queue',
460
+ description: nil,
461
+ symbolize_args: true,
462
+ args: { 'foo' => 'bar' }
463
+ }
464
+ @job = Sidekiq::Cron::Job.new(@args)
465
+ end
466
+
467
+ it 'should return valid payload for Sidekiq::Client' do
468
+ payload = {
469
+ 'class' => 'ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper',
470
+ 'wrapped' => 'ActiveJobCronTestClass',
471
+ 'queue' => 'super_queue',
472
+ 'description' => nil,
473
+ 'args' => [{
474
+ 'job_class' => 'ActiveJobCronTestClass',
475
+ 'job_id' => 'XYZ',
476
+ 'queue_name' => 'super_queue',
477
+ 'arguments' => [{foo: 'bar'}]
478
+ }]
479
+ }
480
+ assert_equal @job.active_job_message, payload
481
+ end
482
+ end
483
+
484
+ describe '#active_job_message with symbolize_args (array)' do
485
+ before do
486
+ SecureRandom.stubs(:uuid).returns('XYZ')
487
+ ActiveJob::Base.queue_name_prefix = ''
488
+
489
+ @args = {
490
+ name: 'Test',
491
+ cron: '* * * * *',
492
+ klass: 'ActiveJobCronTestClass',
493
+ queue: 'super_queue',
494
+ description: nil,
495
+ symbolize_args: true,
496
+ args: [{ 'foo' => 'bar' }]
497
+ }
498
+ @job = Sidekiq::Cron::Job.new(@args)
499
+ end
500
+
501
+ it 'should return valid payload for Sidekiq::Client' do
502
+ payload = {
503
+ 'class' => 'ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper',
504
+ 'wrapped' => 'ActiveJobCronTestClass',
505
+ 'queue' => 'super_queue',
506
+ 'description' => nil,
507
+ 'args' => [{
508
+ 'job_class' => 'ActiveJobCronTestClass',
509
+ 'job_id' => 'XYZ',
510
+ 'queue_name' => 'super_queue',
511
+ 'arguments' => [{foo: 'bar'}]
512
+ }]
513
+ }
514
+ assert_equal @job.active_job_message, payload
515
+ end
364
516
  end
365
517
 
366
518
  describe '#active_job_message with queue_name_prefix' do
@@ -412,6 +564,23 @@ describe "Cron Job" do
412
564
  .returns(ActiveJobCronTestClass.new)
413
565
  @job.enque!
414
566
  end
567
+
568
+ describe 'with date_as_argument' do
569
+ before do
570
+ @args.merge!(date_as_argument: true)
571
+ @job = Sidekiq::Cron::Job.new(@args)
572
+ end
573
+
574
+ it 'should add timestamp to args' do
575
+ ActiveJobCronTestClass.expects(:perform_later)
576
+ .returns(ActiveJobCronTestClass.new)
577
+ .with { |*args|
578
+ assert args[-1].is_a?(Float)
579
+ assert args[-1].between?(Time.now.to_f - 1, Time.now.to_f)
580
+ }
581
+ @job.enque!
582
+ end
583
+ end
415
584
  end
416
585
 
417
586
  describe 'active job with queue_name_prefix' do
@@ -539,6 +708,24 @@ describe "Cron Job" do
539
708
  .returns(true)
540
709
  @job.enque!
541
710
  end
711
+
712
+ describe 'with date_as_argument' do
713
+ before do
714
+ @args.merge!(date_as_argument: true)
715
+ @job = Sidekiq::Cron::Job.new(@args)
716
+ end
717
+
718
+ it 'should add timestamp to args' do
719
+ CronTestClass::Setter.any_instance
720
+ .expects(:perform_async)
721
+ .returns(true)
722
+ .with { |*args|
723
+ assert args[-1].is_a?(Float)
724
+ assert args[-1].between?(Time.now.to_f - 1, Time.now.to_f)
725
+ }
726
+ @job.enque!
727
+ end
728
+ end
542
729
  end
543
730
 
544
731
  describe 'sidekiq worker unknown class' do
@@ -649,7 +836,7 @@ describe "Cron Job" do
649
836
  end
650
837
 
651
838
  it "last_enqueue_time shouldn't be rewritten after save" do
652
- #adding last_enqueue_time to initialize is only for test purpose
839
+ # Adding last_enqueue_time to initialize is only for testing purposes.
653
840
  last_enqueue_time = '2013-01-01 23:59:59 +0000'
654
841
  expected_enqueue_time = DateTime.parse(last_enqueue_time).to_time.utc
655
842
  Sidekiq::Cron::Job.create(@args.merge('last_enqueue_time' => last_enqueue_time))
@@ -675,6 +862,7 @@ describe "Cron Job" do
675
862
  assert_equal job.name, "Test"
676
863
  end
677
864
  end
865
+
678
866
  it "from String" do
679
867
  args = {
680
868
  name: "Test",
@@ -687,6 +875,7 @@ describe "Cron Job" do
687
875
  assert_equal job.name, "Test"
688
876
  end
689
877
  end
878
+
690
879
  it "from Array" do
691
880
  args = {
692
881
  name: "Test",
@@ -758,7 +947,6 @@ describe "Cron Job" do
758
947
  Sidekiq::Cron::Job.create(@args)
759
948
  assert Sidekiq::Cron::Job.find('name' => "Test"), "String keys"
760
949
  end
761
-
762
950
  end
763
951
 
764
952
  describe "destroy" do
@@ -795,7 +983,6 @@ describe "Cron Job" do
795
983
  Sidekiq::Cron::Job.create(@args)
796
984
  assert Sidekiq::Cron::Job.destroy('name' => "Test"), "String keys"
797
985
  end
798
-
799
986
  end
800
987
 
801
988
  describe "destroy_removed_jobs" do
@@ -827,11 +1014,11 @@ describe "Cron Job" do
827
1014
  cron: "* * * * *",
828
1015
  klass: "CronTestClass"
829
1016
  }
830
- #first time is allways
831
- #after next cron time!
1017
+ # First time is always after next cron time!
832
1018
  @time = Time.now.utc + 120
833
1019
  end
834
- it "be allways false when status is disabled" do
1020
+
1021
+ it "be always false when status is disabled" do
835
1022
  refute Sidekiq::Cron::Job.new(@args.merge(status: 'disabled')).should_enque? @time
836
1023
  refute Sidekiq::Cron::Job.new(@args.merge(status: 'disabled')).should_enque? @time - 60
837
1024
  refute Sidekiq::Cron::Job.new(@args.merge(status: 'disabled')).should_enque? @time - 120
@@ -852,7 +1039,6 @@ describe "Cron Job" do
852
1039
  assert Sidekiq::Cron::Job.new(@args).should_enque? @time + 235
853
1040
  refute Sidekiq::Cron::Job.new(@args).should_enque? @time + 235
854
1041
 
855
- #just for check
856
1042
  refute Sidekiq::Cron::Job.new(@args).should_enque? @time
857
1043
  refute Sidekiq::Cron::Job.new(@args).should_enque? @time + 135
858
1044
  refute Sidekiq::Cron::Job.new(@args).should_enque? @time + 235
@@ -868,7 +1054,7 @@ describe "Cron Job" do
868
1054
  assert job.test_and_enque_for_time!(@time), "should enqueue"
869
1055
 
870
1056
  future_now = @time + 1 * 60 * 60
871
- Time.stubs(:now).returns(future_now) # save uses Time.now.utc
1057
+ Time.stubs(:now).returns(future_now) # Save uses Time.now.utc
872
1058
  job.save
873
1059
  assert Sidekiq::Cron::Job.new(@args).test_and_enque_for_time!(future_now + 30), "should enqueue"
874
1060
  end
@@ -885,7 +1071,7 @@ describe "Cron Job" do
885
1071
  end
886
1072
  assert_equal Sidekiq::Queue.all.first.size, 1, "Sidekiq queue 1 job in queue"
887
1073
 
888
- # 20 hours after
1074
+ # 20 hours after.
889
1075
  assert Sidekiq::Cron::Job.new(@args).test_and_enque_for_time! @time + 1 * 60 * 60
890
1076
  refute Sidekiq::Cron::Job.new(@args).test_and_enque_for_time! @time + 1 * 60 * 60
891
1077
 
@@ -894,7 +1080,7 @@ describe "Cron Job" do
894
1080
  end
895
1081
  assert_equal Sidekiq::Queue.all.first.size, 2, "Sidekiq queue 2 jobs in queue"
896
1082
 
897
- # 26 hour after
1083
+ # 26 hour after.
898
1084
  assert Sidekiq::Cron::Job.new(@args).test_and_enque_for_time! @time + 26 * 60 * 60
899
1085
  refute Sidekiq::Cron::Job.new(@args).test_and_enque_for_time! @time + 26 * 60 * 60
900
1086
 
@@ -906,7 +1092,6 @@ describe "Cron Job" do
906
1092
  end
907
1093
 
908
1094
  describe "load" do
909
-
910
1095
  describe "from hash" do
911
1096
  before do
912
1097
  @jobs_hash = {
@@ -929,9 +1114,19 @@ describe "Cron Job" do
929
1114
  assert_equal Sidekiq::Cron::Job.all.size, 2, "Should have 2 jobs after load"
930
1115
  end
931
1116
 
1117
+ it "duplicate jobs are not loaded" do
1118
+ out = Sidekiq::Cron::Job.load_from_hash @jobs_hash
1119
+ assert_equal out.size, 0, "should have no errors"
1120
+ assert_equal Sidekiq::Cron::Job.all.size, 2, "Should have 2 jobs after load"
1121
+
1122
+ out_2 = Sidekiq::Cron::Job.load_from_hash @jobs_hash
1123
+ assert_equal out_2.size, 0, "should have no errors"
1124
+ assert_equal Sidekiq::Cron::Job.all.size, 2, "Should have 2 jobs after loading again"
1125
+ end
1126
+
932
1127
  it "return errors on loaded jobs" do
933
1128
  assert_equal Sidekiq::Cron::Job.all.size, 0, "Should have 0 jobs before load"
934
- #set something bag to hash
1129
+ # Set something bad to hash.
935
1130
  @jobs_hash['name_of_job']['cron'] = "bad cron"
936
1131
  out = Sidekiq::Cron::Job.load_from_hash @jobs_hash
937
1132
  assert_equal 1, out.size, "should have 1 error"
@@ -981,6 +1176,16 @@ describe "Cron Job" do
981
1176
  assert_equal Sidekiq::Cron::Job.all.size, 2, "Should have 2 jobs after load"
982
1177
  end
983
1178
 
1179
+ it "duplicate jobs are not loaded" do
1180
+ out = Sidekiq::Cron::Job.load_from_array @jobs_array
1181
+ assert_equal out.size, 0, "should have no errors"
1182
+ assert_equal Sidekiq::Cron::Job.all.size, 2, "Should have 2 jobs after load"
1183
+
1184
+ out_2 = Sidekiq::Cron::Job.load_from_array @jobs_array
1185
+ assert_equal out_2.size, 0, "should have no errors"
1186
+ assert_equal Sidekiq::Cron::Job.all.size, 2, "Should have 2 jobs after loading again"
1187
+ end
1188
+
984
1189
  it "create new jobs and update old one with same settings with load_from_array" do
985
1190
  assert_equal Sidekiq::Cron::Job.all.size, 0, "Should have 0 jobs before load"
986
1191
  out = Sidekiq::Cron::Job.load_from_array! @jobs_array
@@ -1018,7 +1223,6 @@ describe "Cron Job" do
1018
1223
 
1019
1224
  assert_equal Sidekiq::Cron::Job.all.first.sidekiq_worker_message, payload
1020
1225
  end
1021
-
1022
1226
  end
1023
1227
  end
1024
1228
  end
@@ -1,13 +1,11 @@
1
- # -*- encoding : utf-8 -*-
2
1
  require './test/test_helper'
3
2
 
4
-
5
3
  describe 'Cron Poller' do
6
4
  before do
5
+ REDIS.with { |c| c.respond_to?(:redis) ? c.redis.flushdb : c.flushdb }
7
6
  Sidekiq.redis = REDIS
8
- Redis.current.flushdb
9
7
 
10
- #clear all previous saved data from redis
8
+ # Clear all previous saved data from Redis.
11
9
  Sidekiq.redis do |conn|
12
10
  conn.keys("cron_job*").each do |key|
13
11
  conn.del(key)
@@ -29,7 +27,7 @@ describe 'Cron Poller' do
29
27
  now = Time.now.utc + 3600
30
28
  enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 5, 1)
31
29
  Time.stubs(:now).returns(enqueued_time)
32
- #new jobs!
30
+
33
31
  Sidekiq::Cron::Job.create(@args)
34
32
  Sidekiq::Cron::Job.create(@args2)
35
33
 
@@ -40,7 +38,7 @@ describe 'Cron Poller' do
40
38
  assert_equal 0, conn.llen("queue:super")
41
39
  end
42
40
 
43
- #30 seconds after!
41
+ # 30 seconds after!
44
42
  enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 5, 30)
45
43
  Time.stubs(:now).returns(enqueued_time)
46
44
 
@@ -56,7 +54,7 @@ describe 'Cron Poller' do
56
54
  now = Time.now.utc + 3600
57
55
  enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 5, 1)
58
56
  Time.stubs(:now).returns(enqueued_time)
59
- #new jobs!
57
+
60
58
  Sidekiq::Cron::Job.create(@args)
61
59
  Sidekiq::Cron::Job.create(@args2)
62
60
 
@@ -81,7 +79,7 @@ describe 'Cron Poller' do
81
79
  now = Time.now.utc + 3600
82
80
  enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 8, 1)
83
81
  Time.stubs(:now).returns(enqueued_time)
84
- #new jobs!
82
+
85
83
  Sidekiq::Cron::Job.create(@args)
86
84
  Sidekiq::Cron::Job.create(@args2)
87
85
 
@@ -106,7 +104,7 @@ describe 'Cron Poller' do
106
104
  now = Time.now.utc + 3600
107
105
  enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 8, 1)
108
106
  Time.stubs(:now).returns(enqueued_time)
109
- #new jobs!
107
+
110
108
  Sidekiq::Cron::Job.create(@args)
111
109
  Sidekiq::Cron::Job.create(@args2)
112
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
@@ -1,37 +1,39 @@
1
1
  require './test/test_helper'
2
2
 
3
- def app
4
- Sidekiq::Web
5
- end
6
-
7
3
  describe 'Cron web' do
8
4
  include Rack::Test::Methods
9
5
 
6
+ TOKEN = SecureRandom.base64(32).freeze
7
+
8
+ def app
9
+ Sidekiq::Web
10
+ end
11
+
10
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 }
11
16
  Sidekiq.redis = REDIS
12
- Redis.current.flushdb
17
+ end
13
18
 
14
- #clear all previous saved data from redis
15
- Sidekiq.redis do |conn|
16
- conn.keys("cron_job*").each do |key|
17
- conn.del(key)
18
- end
19
- end
19
+ let(:job_name) { "TestNameOfCronJob" }
20
+ let(:cron_job_name) { "TesQueueNameOfCronJob" }
20
21
 
21
- @args = {
22
- name: "TestNameOfCronJob",
22
+ let(:args) do
23
+ {
24
+ name: job_name,
23
25
  cron: "*/2 * * * *",
24
26
  klass: "CronTestClass"
25
27
  }
28
+ end
26
29
 
27
-
28
- @cron_args = {
29
- name: "TesQueueNameOfCronJob",
30
+ let(:cron_args) do
31
+ {
32
+ name: cron_job_name,
30
33
  cron: "*/2 * * * *",
31
34
  klass: "CronQueueTestClass",
32
35
  queue: "cron"
33
36
  }
34
-
35
37
  end
36
38
 
37
39
  it 'display cron web' do
@@ -45,7 +47,7 @@ describe 'Cron web' do
45
47
  end
46
48
 
47
49
  it 'display cron web with cron jobs table' do
48
- Sidekiq::Cron::Job.create(@args)
50
+ Sidekiq::Cron::Job.create(args)
49
51
 
50
52
  get '/cron'
51
53
  assert_equal 200, last_response.status
@@ -55,27 +57,25 @@ describe 'Cron web' do
55
57
  end
56
58
 
57
59
  describe "work with cron job" do
58
-
59
60
  before do
60
- @job = Sidekiq::Cron::Job.new(@args.merge(status: "enabled"))
61
- @job.save
62
- @name = "TestNameOfCronJob"
61
+ @job = Sidekiq::Cron::Job.new(args.merge(status: "enabled"))
62
+ assert @job.save
63
63
 
64
- @cron_job = Sidekiq::Cron::Job.new(@cron_args.merge(status: "enabled"))
65
- @cron_job.save
66
- @cron_job_name = "TesQueueNameOfCronJob"
64
+ @cron_job = Sidekiq::Cron::Job.new(cron_args.merge(status: "enabled"))
65
+ assert @cron_job.save
67
66
  end
68
67
 
69
68
  it 'shows history of a cron job' do
70
69
  @job.enque!
71
- get "/cron/#{@name}"
70
+ get "/cron/#{job_name}"
72
71
 
73
72
  jid =
74
73
  Sidekiq.redis do |conn|
75
- history = conn.lrange Sidekiq::Cron::Job.jid_history_key(@name), 0, -1
74
+ history = conn.lrange Sidekiq::Cron::Job.jid_history_key(job_name), 0, -1
76
75
  Sidekiq.load_json(history.last)['jid']
77
76
  end
78
77
 
78
+ assert jid
79
79
  assert last_response.body.include?(jid)
80
80
  end
81
81
 
@@ -87,18 +87,18 @@ describe 'Cron web' do
87
87
 
88
88
  it "disable and enable all cron jobs" do
89
89
  post "/cron/__all__/disable"
90
- assert_equal Sidekiq::Cron::Job.find(@name).status, "disabled"
90
+ assert_equal Sidekiq::Cron::Job.find(job_name).status, "disabled"
91
91
 
92
92
  post "/cron/__all__/enable"
93
- assert_equal Sidekiq::Cron::Job.find(@name).status, "enabled"
93
+ assert_equal Sidekiq::Cron::Job.find(job_name).status, "enabled"
94
94
  end
95
95
 
96
96
  it "disable and enable cron job" do
97
- post "/cron/#{@name}/disable"
98
- assert_equal Sidekiq::Cron::Job.find(@name).status, "disabled"
97
+ post "/cron/#{job_name}/disable"
98
+ assert_equal Sidekiq::Cron::Job.find(job_name).status, "disabled"
99
99
 
100
- post "/cron/#{@name}/enable"
101
- assert_equal Sidekiq::Cron::Job.find(@name).status, "enabled"
100
+ post "/cron/#{job_name}/enable"
101
+ assert_equal Sidekiq::Cron::Job.find(job_name).status, "enabled"
102
102
  end
103
103
 
104
104
  it "enqueue all jobs" do
@@ -119,21 +119,21 @@ describe 'Cron web' do
119
119
  assert_equal 0, conn.llen("queue:default"), "Queue should have no jobs"
120
120
  end
121
121
 
122
- post "/cron/#{@name}/enque"
122
+ post "/cron/#{job_name}/enque"
123
123
 
124
124
  Sidekiq.redis do |conn|
125
125
  assert_equal 1, conn.llen("queue:default"), "Queue should have 1 job"
126
126
  end
127
127
 
128
- #should enqueue more times
129
- post "/cron/#{@name}/enque"
128
+ # Should enqueue more times.
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
136
- post "/cron/#{@cron_job_name}/enque"
135
+ # Should enqueue to cron job queue.
136
+ post "/cron/#{cron_job_name}/enque"
137
137
 
138
138
  Sidekiq.redis do |conn|
139
139
  assert_equal 1, conn.llen("queue:cron"), "Queue should have 1 cron job"
@@ -142,8 +142,8 @@ describe 'Cron web' do
142
142
 
143
143
  it "destroy job" do
144
144
  assert_equal Sidekiq::Cron::Job.all.size, 2, "Should have 2 job"
145
- post "/cron/#{@name}/delete"
146
- post "/cron/#{@cron_job_name}/delete"
145
+ post "/cron/#{job_name}/delete"
146
+ post "/cron/#{cron_job_name}/delete"
147
147
  assert_equal Sidekiq::Cron::Job.all.size, 0, "Should have zero jobs"
148
148
  end
149
149