From 2385b6e4e519e78c2445ac4aaeb377d8bb398956 Mon Sep 17 00:00:00 2001 From: Alex Ghiculescu Date: Sun, 2 Jul 2023 16:25:09 +1000 Subject: [PATCH] Fix incorrect arguments for Active Job test job This is an internal fix, not user facing. Currently the `LoggingJob` does not accept more than one argument. But there's [a few tests](https://github.com/rails/rails/blob/f46d3452ae30c46d3e213c687decbbca0cee9119/activejob/test/cases/test_helper_test.rb#L518-L537) that call it with multiple arguments and assert that it is queued correctly. Those tests pass because the job is not performed, but if the job was performed, they'd fail. This PR just fixes `LoggingJob` to accept a splat of arguments, and adds a test to ensure that it works correctly. --- activejob/test/cases/test_helper_test.rb | 6 ++++++ activejob/test/jobs/logging_job.rb | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/activejob/test/cases/test_helper_test.rb b/activejob/test/cases/test_helper_test.rb index dfef1c8e5e1..64fca4d6030 100644 --- a/activejob/test/cases/test_helper_test.rb +++ b/activejob/test/cases/test_helper_test.rb @@ -515,6 +515,12 @@ class EnqueuedJobsTest < ActiveJob::TestCase end end + def test_assert_no_enqueued_jobs_and_perform_now + assert_no_enqueued_jobs do + LoggingJob.perform_now(1, 2, 3, keyword: true) + end + end + def test_assert_enqueued_with_returns job = assert_enqueued_with(job: LoggingJob) do LoggingJob.set(wait_until: 5.minutes.from_now).perform_later(1, 2, 3, keyword: true) diff --git a/activejob/test/jobs/logging_job.rb b/activejob/test/jobs/logging_job.rb index 4605fa69372..d4ec2142f5e 100644 --- a/activejob/test/jobs/logging_job.rb +++ b/activejob/test/jobs/logging_job.rb @@ -1,8 +1,8 @@ # frozen_string_literal: true class LoggingJob < ActiveJob::Base - def perform(dummy) - logger.info "Dummy, here is it: #{dummy}" + def perform(*dummy) + logger.info "Dummy, here is it: #{dummy.join(" ")}" end def job_id