Update sidekiq-cron to at least 1.3.0

Part of #369392 (closed).

sidekiq-cron 1.2.0, which we are currently using, did not test against Ruby 3. I am able to run the tests locally using this version, with some changes to lock dependencies to the versions we also use:

sidekiq-cron test run
diff --git a/Gemfile b/Gemfile
index 1b50fb4..fa75df1 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,32 +1,3 @@
 source 'https://rubygems.org'
 
-gem 'sidekiq', '>= 4.2.1'
-gem 'fugit', '~> 1.1'
-
-group :development do
-  gem 'bundler'
-  gem 'simplecov'
-
-  gem 'redis-namespace', '>= 1.5.2'
-  gem 'shoulda-context'
-
-  gem 'rack'
-  gem 'rack-test'
-
-  gem 'jeweler'
-
-  gem 'minitest'
-  gem 'test-unit'
-  gem 'sdoc' # sdoc -N .
-
-  gem 'slim'
-  gem 'sinatra'
-
-  gem 'mocha'
-  gem 'coveralls'
-
-  gem 'shotgun'
-
-  gem 'guard'
-  gem 'guard-minitest'
-end
+gemspec
diff --git a/sidekiq-cron.gemspec b/sidekiq-cron.gemspec
index e9bede8..252386a 100644
--- a/sidekiq-cron.gemspec
+++ b/sidekiq-cron.gemspec
@@ -64,10 +64,11 @@ Gem::Specification.new do |s|
     s.specification_version = 4
 
     if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
-      s.add_runtime_dependency(%q<sidekiq>.freeze, [">= 4.2.1"])
+      s.add_runtime_dependency(%q<sidekiq>.freeze, ["= 6.4.0"])
       s.add_runtime_dependency(%q<fugit>.freeze, ["~> 1.1"])
       s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
       s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
+      s.add_development_dependency(%q<redis>.freeze, ["= 4.7.1"])
       s.add_development_dependency(%q<redis-namespace>.freeze, [">= 1.5.2"])
       s.add_development_dependency(%q<shoulda-context>.freeze, [">= 0"])
       s.add_development_dependency(%q<rack>.freeze, [">= 0"])
@@ -126,4 +127,3 @@ Gem::Specification.new do |s|
     s.add_dependency(%q<guard-minitest>.freeze, [">= 0"])
   end
 end
-
diff --git a/test/test_helper.rb b/test/test_helper.rb
index 8f8ce51..352e7f9 100644
--- a/test/test_helper.rb
+++ b/test/test_helper.rb
@@ -8,14 +8,14 @@ rescue Bundler::BundlerError => e
   exit e.status_code
 end
 
-require 'simplecov'
-SimpleCov.start do
-  add_filter "/test/"
-
-  add_group 'SidekiqCron', 'lib/'
-end
-require 'coveralls'
-Coveralls.wear!
+# require 'simplecov'
+# SimpleCov.start do
+#   add_filter "/test/"
+
+#   add_group 'SidekiqCron', 'lib/'
+# end
+# require 'coveralls'
+# Coveralls.wear!
 
 require "minitest/autorun"
 require 'shoulda-context'

I've removed some web tests as they were updated in https://github.com/ondrejbartas/sidekiq-cron/pull/314 and we don't use that feature. Even then, I still get these failures:

  1) Failure:
Cron Job::destroy#test_0002_return false on destroying nonexisting [/home/smcgivern/forks/sidekiq-cron/test/unit/job_test.rb:783]:
Expected true to not be truthy.

  2) Failure:
Cron Poller#test_0004_should enqueue both jobs but only one time each [/home/smcgivern/forks/sidekiq-cron/test/unit/poller_test.rb:116]:
Expected: 0
  Actual: 1

  3) Failure:
Cron Poller#test_0003_should enqueue both jobs [/home/smcgivern/forks/sidekiq-cron/test/unit/poller_test.rb:91]:
Expected: 0
  Actual: 1

  4) Failure:
Cron Job::nonexisting job#test_0001_not be found [/home/smcgivern/forks/sidekiq-cron/test/unit/job_test.rb:585]:
should return nil

90 runs, 191 assertions, 4 failures, 0 errors, 0 skips

I get these failures on both Ruby 3 and Ruby 2.7, but it is probably prudent to update the gem to a version which explicitly supports Ruby 3 anyway.

The minimal update would be 1.3.0. The maximal one would be 1.7.0, but we'd need to check https://github.com/ondrejbartas/sidekiq-cron/issues/350 first.

Edited Sep 01, 2022 by Sean McGivern
Assignee Loading
Time tracking Loading