From 3942b7ac5f8a130b0ef4081ee6aefeca14371c47 Mon Sep 17 00:00:00 2001 From: Katsuya HIDAKA Date: Wed, 21 Oct 2026 15:04:57 +0900 Subject: Skip issue update notifications for deleted issues --- app/models/mailer.rb | 2 ++ test/unit/mailer_test.rb | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/app/models/mailer.rb b/app/models/mailer.rb index 073b3074a..6e0e3593e 100644 --- a/app/models/mailer.rb +++ b/app/models/mailer.rb @@ -112,6 +112,8 @@ class Mailer < ActionMailer::Base # Builds a mail for notifying user about an issue update def issue_edit(user, journal) issue = journal.journalized + return unless issue + redmine_headers 'Project' => issue.project.identifier, 'Issue-Tracker' => issue.tracker.name, 'Issue-Id' => issue.id, diff --git a/test/unit/mailer_test.rb b/test/unit/mailer_test.rb index eb506c393..1e79db1f2 100644 --- a/test/unit/mailer_test.rb +++ b/test/unit/mailer_test.rb @@ -575,6 +575,20 @@ class MailerTest < ActiveSupport::TestCase end end + def test_issue_edit_should_not_send_notification_if_issue_was_deleted_after_journal_was_loaded + journal = Journal.find(1) + issue = Issue.find(journal.journalized_id) + assert_not journal.association(:journalized).loaded? + + issue.destroy! + assert_not Issue.exists?(issue.id) + assert_not Journal.exists?(journal.id) + + assert_no_difference 'ActionMailer::Base.deliveries.size' do + Mailer.issue_edit(User.find(1), journal).deliver_now + end + end + def test_issue_edit_subject_should_include_status_changes_if_setting_is_enabled with_settings :show_status_changes_in_mail_subject => 1 do issue = Issue.find(2) -- 2.51.0