Files
eminuxCRM/test/services/mail_merge_test.rb
T
eminuxandCursor 98dcdbbf82
CI / lint (push) Failing after 16m2s
CI / scan_ruby (push) Has been cancelled
CI / scan_js (push) Has been cancelled
Aggiunge fascia oraria, prova manuale obbligatoria e cruscotto invii email.
Le campagne rispettano orario e giorni lavorativi, richiedono una mail di test con dati inseriti a mano prima dell'invio massivo e offrono una dashboard per monitorare l'avanzamento.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-18 00:04:33 +02:00

47 lines
1.5 KiB
Ruby

require "test_helper"
class MailMergeTest < ActiveSupport::TestCase
test "replaces tokens from organization and contact" do
html = MailMerge.render(
"Ciao {{contatto_nome}} di {{societa}} in {{regione}}",
organization: organizations(:acme),
contact: contacts(:primary),
project: projects(:matchlivetv),
opportunity: opportunities(:deal)
)
assert_equal "Ciao Mario Rossi di ASD Test Calcio in Lombardia", html
end
test "falls back to primary contact and org email" do
vars = MailMerge.variables_for(organization: organizations(:acme), project: projects(:matchlivetv))
assert_equal "Mario Rossi", vars["contatto_nome"]
assert_equal "mario@asdtest.example.it", vars["email"]
assert_equal "MatchLiveTV", vars["progetto"]
assert_equal "Full", vars["piano"]
end
test "test_ab prefers explicit variant" do
vars = MailMerge.variables_for(
organization: organizations(:acme),
project: projects(:matchlivetv),
ab_variant: "B"
)
assert_equal "B", vars["test_ab"]
end
test "unknown tokens become empty string" do
assert_equal "X Y", MailMerge.render("X {{sconosciuto}} Y")
end
test "extras override variables for manual test data" do
html = MailMerge.render(
"Ciao {{contatto_nome}} di {{societa}}",
organization: organizations(:acme),
project: projects(:matchlivetv),
extras: { societa: "Override SRL", contatto_nome: "Manual Test" }
)
assert_equal "Ciao Manual Test di Override SRL", html
end
end