Importa i prospect Basket senza email vuote e senza toccare le altre campagne.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-07 12:06:07 +02:00
co-authored by Cursor
parent 3e73e708e4
commit a9470d7e77
3 changed files with 289 additions and 2 deletions
@@ -107,4 +107,56 @@ class CampaignImportMatchlivetvLaunchTest < ActiveSupport::TestCase
ensure
csv.close!
end
test "skips clubs without a verified email" do
csv = Tempfile.new(["basket", ".csv"])
csv.write(<<~CSV)
N.,Regione,Prov.,Società,M/F,Email verificata,Sito / profilo,Streaming rilevato,Evidenza / fit commerciale,Test A/B,Stato invio,Data invio,Esito,Demo / Trial,Conversione,Piano,Fonte contatto / ricerca,Data verifica,Note follow-up
1,Lombardia,MI,Olimpia Milano,M,olimpia@olimpiamilano.com,olimpiamilano.com,RILEVATO,Serie A,A,DA INVIARE,,,NO,NO,,fonte,2026-09-07,
89,Lombardia,CR,Pallacanestro Crema,M,,cremabasket.it,NON RILEVATO,Serie B,B,DA INVIARE,,,NO,NO,,fonte,2026-09-07,
CSV
csv.flush
result = CampaignImport::MatchlivetvLaunch.new(
path: csv.path,
user: users(:admin),
project: projects(:matchlivetv),
wipe: false,
sport: "Basket",
campaign_name: "Campagna Basket"
).call
assert_empty result.errors, result.errors.inspect
assert_equal 1, result.imported
assert_equal 1, result.skipped
assert Organization.exists?(name: "Olimpia Milano")
assert_equal "yes", Organization.find_by!(name: "Olimpia Milano").streaming_status
assert_nil Organization.find_by(name: "Pallacanestro Crema")
ensure
csv.close!
end
test "transliterates accented characters in campaign emails" do
csv = Tempfile.new(["frascati", ".csv"])
csv.write(<<~CSV)
N.,Regione,Prov.,Società,M/F,Email verificata,Sito / profilo,Streaming rilevato,Evidenza / fit commerciale,Test A/B,Stato invio,Data invio,Esito,Demo / Trial,Conversione,Piano,Fonte contatto / ricerca,Data verifica,Note follow-up
127,Lazio,RM,Club Basket Frascati,M/F,società@basketfrascati.com,basketfrascati.com,NON RILEVATO,Giovanile,A,DA INVIARE,,,NO,NO,,fonte,2026-09-07,
CSV
csv.flush
result = CampaignImport::MatchlivetvLaunch.new(
path: csv.path,
user: users(:admin),
project: projects(:matchlivetv),
wipe: false,
sport: "Basket",
campaign_name: "Campagna Basket"
).call
assert_empty result.errors, result.errors.inspect
assert_equal 1, result.imported
assert_equal "societa@basketfrascati.com", Organization.find_by!(name: "Club Basket Frascati").email
ensure
csv.close!
end
end