1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
$TESTING = true
ENV['RACK_ENV'] = 'test'
require 'simplecov'
SimpleCov.start do
add_filter "/test/"
add_group 'SidekiqCron', 'lib/'
end
require "minitest/autorun"
require "rack/test"
require 'mocha/minitest'
require 'sidekiq'
require "sidekiq-pro" if ENV['SIDEKIQ_PRO_VERSION']
require 'sidekiq/web'
require "sidekiq/cli"
Sidekiq.logger.level = Logger::ERROR
redis_url = ENV['REDIS_URL'] || 'redis://0.0.0.0:6379'
REDIS = Sidekiq::RedisConnection.create(:url => redis_url, :namespace => 'testy')
Sidekiq.configure_client do |config|
config.redis = { :url => redis_url, :namespace => 'testy' }
end
require 'sidekiq-cron'
require 'sidekiq/cron/web'
# For testing os symbilize args!
class Hash
def symbolize_keys
transform_keys { |key| key.to_sym rescue key }
end
end
class CronTestClass
include Sidekiq::Worker
sidekiq_options retry: true
def perform args = {}
puts "super croned job #{args}"
end
end
class CronTestClassWithQueue
include Sidekiq::Worker
sidekiq_options queue: :super, retry: false, backtrace: true
def perform args = {}
puts "super croned job #{args}"
end
end
module ActiveJob
class Base
attr_accessor *%i[job_class provider_job_id queue_name arguments]
def initialize
yield self if block_given?
self.provider_job_id ||= SecureRandom.hex(12)
end
def self.queue_name_prefix
@queue_name_prefix
end
def self.queue_name_prefix=(queue_name_prefix)
@queue_name_prefix = queue_name_prefix
end
def self.set(options)
@queue = options['queue']
self
end
def try(method, *args, &block)
send method, *args, &block if respond_to? method
end
def self.perform_later(*args)
new do |instance|
instance.job_class = self.class.name
instance.queue_name = @queue
instance.arguments = [*args]
end
end
end
end
class ActiveJobCronTestClass < ActiveJob::Base
end
|