afa019835b
Fix: https://github.com/rails/rails/pull/51426#issuecomment-2042611790 `perform_later` is supposed to return the Job instance on success, and `false` on error. When the `enqueue` is automatically delayed, it's of course impossible to predict if the actual queueing will succeed, but for backward compatibility reasons, it's best to assume it will. If necessary, you can hold onto the job instance and check for `#successfully_enqueued?` after the transaction has completed.
28 lines
653 B
Ruby
28 lines
653 B
Ruby
# frozen_string_literal: true
|
|
|
|
require "active_support/testing/strict_warnings"
|
|
require "active_job"
|
|
require "support/job_buffer"
|
|
|
|
GlobalID.app = "aj"
|
|
|
|
@adapter = ENV["AJ_ADAPTER"] ||= "inline"
|
|
puts "Using #{@adapter}"
|
|
|
|
if ENV["AJ_INTEGRATION_TESTS"]
|
|
require "support/integration/helper"
|
|
else
|
|
ActiveJob::Base.logger = Logger.new(nil)
|
|
require "adapters/#{@adapter}"
|
|
end
|
|
|
|
require "active_support/testing/autorun"
|
|
|
|
def adapter_is?(*adapter_class_symbols)
|
|
adapter_class_symbols.map(&:to_s).include? ActiveJob::Base.queue_adapter_name
|
|
end
|
|
|
|
require_relative "../../tools/test_common"
|
|
|
|
ActiveJob::Base.include(ActiveJob::EnqueueAfterTransactionCommit)
|