spec/spec_helper.rb in gush-2.1.0 vs spec/spec_helper.rb in gush-3.0.0
- old
+ new
@@ -1,5 +1,7 @@
+require 'active_support'
+require 'active_support/testing/time_helpers'
require 'gush'
require 'json'
require 'pry'
ActiveJob::Base.queue_adapter = :test
@@ -32,10 +34,15 @@
def configure(param)
run Prepare if param
end
end
+class WaitableTestWorkflow < Gush::Workflow
+ def configure
+ run Prepare, wait: 5.minutes
+ end
+end
REDIS_URL = ENV["REDIS_URL"] || "redis://localhost:6379/12"
module GushHelpers
def redis
@@ -84,10 +91,25 @@
failure_message do |actual|
"expected queue to have no #{jobs}, but instead has: #{ActiveJob::Base.queue_adapter.enqueued_jobs.map{ |j| j[:args][1]}}"
end
end
+RSpec::Matchers.define :have_a_job_enqueued_at do |flow, job, at|
+ expected_execution_timestamp = (Time.current.utc + at).to_i
+
+ match do |actual|
+ expected = hash_including(args: include(flow, job), at: expected_execution_timestamp)
+
+ expect(ActiveJob::Base.queue_adapter.enqueued_jobs).to match_array(expected)
+ end
+
+ failure_message do |actual|
+ "expected to have enqueued job #{job} to be executed at #{Time.current.utc + at}, but instead has: #{Time.at(enqueued_jobs.first[:at]).to_datetime.utc}"
+ end
+end
+
RSpec.configure do |config|
+ config.include ActiveSupport::Testing::TimeHelpers
config.include ActiveJob::TestHelper
config.include GushHelpers
config.mock_with :rspec do |mocks|
mocks.verify_partial_doubles = true