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 end