Permette di mettere in pausa un invio e riprenderlo senza perdere la coda.
CI / scan_js (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / scan_ruby (push) Has been cancelled

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-07 12:35:42 +02:00
co-authored by Cursor
parent 4cf34b2033
commit 3c8bfe053f
10 changed files with 108 additions and 17 deletions
@@ -303,6 +303,32 @@ class MailingsControllerTest < ActionDispatch::IntegrationTest
assert mailing.reload.sending?
end
test "pause keeps remaining recipients and resume continues from there" 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)
recipients.second.update!(status: "queued")
mailing.update!(status: "sending", queued_at: Time.current, test_sent_at: Time.current, test_sent_to: "test@example.com")
post pause_mailing_path(mailing, project_code: @project.code)
assert_redirected_to dashboard_mailings_path(project_code: @project.code)
assert_equal "paused", mailing.reload.status
assert_equal "sent", recipients.first.reload.status
assert_equal "queued", recipients.second.reload.status
post resume_mailing_path(mailing, project_code: @project.code)
assert_redirected_to dashboard_mailings_path(project_code: @project.code)
assert_equal "sending", mailing.reload.status
assert_equal "queued", recipients.second.reload.status
end
test "cancel stops pending recipients and keeps sent ones" do
login_as users(:admin)
follow_redirect! if response.redirect?