Aggiunge pulsante per fermare un invio email in corso.
Permette di annullare i destinatari ancora in coda mantenendo le email già inviate. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -184,4 +184,25 @@ class MailingsControllerTest < ActionDispatch::IntegrationTest
|
||||
assert_equal "B {{societa}}", mailing.subject_b
|
||||
assert_includes mailing.body_html_b, "Versione B dal template"
|
||||
end
|
||||
|
||||
test "cancel stops pending recipients and keeps sent ones" do
|
||||
login_as users(:admin)
|
||||
follow_redirect! if response.redirect?
|
||||
create_campaign_org(name: "Seconda societa", email: "seconda@example.com")
|
||||
mailing = create_mailing(identity: @identity, audience: "to_send")
|
||||
mailing.rebuild_recipients!
|
||||
recipients = mailing.mailing_recipients.order(:id).to_a
|
||||
assert recipients.size >= 2
|
||||
recipients.first.update!(status: "sent", sent_at: Time.current)
|
||||
mailing.update!(status: "sending", queued_at: Time.current, test_sent_at: Time.current, test_sent_to: "test@example.com")
|
||||
|
||||
post cancel_mailing_path(mailing, project_code: @project.code)
|
||||
|
||||
assert_redirected_to dashboard_mailings_path(project_code: @project.code)
|
||||
assert_equal "cancelled", mailing.reload.status
|
||||
assert_equal "sent", recipients.first.reload.status
|
||||
assert_equal "skipped", recipients.second.reload.status
|
||||
assert_equal "invio annullato", recipients.second.skip_reason
|
||||
assert mailing.mailing_recipients.pending.none?
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user