From 75124f407664b0efebfa736564acb47c44068538 Mon Sep 17 00:00:00 2001 From: Marius Balteanu Date: Tue, 17 May 2022 20:53:12 +0000 Subject: [PATCH] Fix random failing tests (#36691). MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Patch by Jens Krämer. git-svn-id: https://svn.redmine.org/redmine/trunk@21593 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- test/unit/jobs/destroy_project_job_test.rb | 20 +++++++++++++------- test/unit/jobs/destroy_projects_job_test.rb | 21 ++++++++++++++------- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/test/unit/jobs/destroy_project_job_test.rb b/test/unit/jobs/destroy_project_job_test.rb index c4e165043..25219db31 100644 --- a/test/unit/jobs/destroy_project_job_test.rb +++ b/test/unit/jobs/destroy_project_job_test.rb @@ -25,6 +25,7 @@ class DestroyProjectJobTest < ActiveJob::TestCase setup do @project = Project.find 1 @user = User.find_by_admin true + ActionMailer::Base.deliveries.clear end test "schedule should mark project and children for deletion" do @@ -52,12 +53,17 @@ class DestroyProjectJobTest < ActiveJob::TestCase assert_difference 'Project.count', -5 do DestroyProjectJob.perform_now @project.id, @user.id, '127.0.0.1' end - assert_enqueued_with( - job: ActionMailer::MailDeliveryJob, - args: ->(job_args){ - job_args[1] == 'security_notification' && - job_args[3].to_s.include?("mail_destroy_project_with_subprojects_successful") - } - ) + if m = ActionMailer::Base.deliveries.last + assert_match /Security notification/, m.subject + assert_match /deleted successfully/, m.text_part.to_s + else + assert_enqueued_with( + job: ActionMailer::MailDeliveryJob, + args: ->(job_args){ + job_args[1] == 'security_notification' && + job_args[3].to_s.include?("mail_destroy_project_with_subprojects_successful") + } + ) + end end end diff --git a/test/unit/jobs/destroy_projects_job_test.rb b/test/unit/jobs/destroy_projects_job_test.rb index 980f983e4..020791c61 100644 --- a/test/unit/jobs/destroy_projects_job_test.rb +++ b/test/unit/jobs/destroy_projects_job_test.rb @@ -25,6 +25,7 @@ class DestroyProjectsJobTest < ActiveJob::TestCase setup do @projects = Project.where(id: [1, 2]).to_a @user = User.find_by_admin true + ActionMailer::Base.deliveries.clear end test "schedule should mark projects and children for deletion" do @@ -52,12 +53,18 @@ class DestroyProjectsJobTest < ActiveJob::TestCase assert_difference 'Project.count', -6 do DestroyProjectsJob.perform_now @projects.map(&:id), @user.id, '127.0.0.1' end - assert_enqueued_with( - job: ActionMailer::MailDeliveryJob, - args: ->(job_args){ - job_args[1] == 'security_notification' && - job_args[3].to_s.include?("mail_destroy_project_with_subprojects_successful") - } - ) + if m = ActionMailer::Base.deliveries.last + assert_match /Security notification/, m.subject + assert_match /deleted successfully/, m.text_part.to_s + else + fail 'foo' + assert_enqueued_with( + job: ActionMailer::MailDeliveryJob, + args: ->(job_args){ + job_args[1] == 'security_notification' && + job_args[3].to_s.include?("mail_destroy_project_with_subprojects_successful") + } + ) + end end end -- 2.39.5