package imap import ( "strings" "testing" ) func TestSnippetFromBodies_skipsStyleBlock(t *testing.T) { html := `

Meta for Business vous informe des nouveautés publicitaires.

` got := SnippetFromBodies("", html, 200) if strings.Contains(got, ":root") || strings.Contains(got, "color-scheme") { t.Fatalf("snippet = %q, want body text not CSS", got) } if !strings.Contains(got, "nouveautés") { t.Fatalf("snippet = %q, want meaningful body", got) } } func TestSnippetFromBodies_skipsViewInBrowser(t *testing.T) { html := `

Afficher dans le navigateur

Webinar J-14 : boostez la recherche de vos données matériaux.

` got := SnippetFromBodies("", html, 200) lower := strings.ToLower(got) if strings.Contains(lower, "afficher dans le navigateur") { t.Fatalf("snippet = %q, want to skip boilerplate", got) } if !strings.Contains(got, "Webinar") { t.Fatalf("snippet = %q, want real content", got) } } func TestSnippetFromBodies_skipsSeparatorLine(t *testing.T) { text := "----------------------------------------------------------------\nUn festival rétro au Château de Tilloloy arrive cet été." got := SnippetFromBodies(text, "", 200) if strings.HasPrefix(got, "---") { t.Fatalf("snippet = %q, want content after separator", got) } if !strings.Contains(got, "festival") { t.Fatalf("snippet = %q", got) } } func TestSnippetFromBodies_stripsHTMLTags(t *testing.T) { text := "Bonjour Eliott, votre commande est prête." got := SnippetFromBodies(text, "", 200) if strings.Contains(got, "<") || strings.Contains(got, ">") { t.Fatalf("snippet = %q, want plain text without tags", got) } if !strings.Contains(got, "Bonjour") || !strings.Contains(got, "commande") { t.Fatalf("snippet = %q, want readable text", got) } } func TestRepairSnippetWithBodies_stripsStoredHTMLTags(t *testing.T) { stored := "Offre limitée & exclusive" got := RepairSnippetWithBodies(stored, "", "") if strings.Contains(got, "<") { t.Fatalf("snippet = %q, want tags stripped", got) } if !strings.Contains(got, "Offre") || !strings.Contains(got, "&") { t.Fatalf("snippet = %q, want unescaped text", got) } } func TestRepairSnippetWithBodies_replacesCSSPreview(t *testing.T) { stored := "FacebookMeta for Business :root { color-scheme: light dark;" html := `

Inclure automatiquement des informations plus détaillées sur le compte.

` got := RepairSnippetWithBodies(stored, "", html) if strings.Contains(got, ":root") { t.Fatalf("snippet = %q", got) } if !strings.Contains(got, "automatiquement") { t.Fatalf("snippet = %q, want rebuilt from html", got) } }