20545fc820
Previously in `perform_enqueued_jobs`, `deserialize_arguments_if_needed` was called before calling `perform_now`. When a record no longer exists and is serialized using GlobalID this led to raising an `ActiveJob::DeserializationError` before reaching `perform_now` call. This behaviour makes difficult testing the job `discard_on/retry_on` logic. Now `deserialize_arguments_if_needed` call is postponed to when `perform_now` is called. Example: ```ruby class UpdateUserJob < ActiveJob::Base discard_on ActiveJob::DeserializationError def perform(user) # ... end end User.destroy_all assert_nothing_raised do perform_enqueued_jobs only: UpdateUserJob end assert_no_enqueued_jobs ``` Before this changes the test will fail, now it passes. |
||
---|---|---|
.. | ||
adapter_test.rb | ||
argument_serialization_test.rb | ||
callbacks_test.rb | ||
delayed_job_adapter_test.rb | ||
exceptions_test.rb | ||
job_serialization_test.rb | ||
logging_test.rb | ||
queue_adapter_test.rb | ||
queue_naming_test.rb | ||
queue_priority_test.rb | ||
queuing_test.rb | ||
rescue_test.rb | ||
serializers_test.rb | ||
test_case_test.rb | ||
test_helper_test.rb | ||
timezones_test.rb | ||
translation_test.rb |