package sanitize import ( "strings" "testing" ) func TestStripHiddenEmailHTML_removesMailchimpPreheaderPadding(t *testing.T) { const padding = "͏ \u200c \u00a0 \u2007 " in := `
` + strings.Repeat(padding, 20) + `
` + `

All motor files are now structured by model.

` out := StripHiddenEmailHTML(in) if strings.Contains(out, "\u034f") || strings.Contains(out, "\u200c") { t.Fatalf("invisible padding remains: %q", out) } if !strings.Contains(out, "All motor files") { t.Fatalf("visible content removed: %q", out) } } func TestSanitizeHTML_stripsHiddenPreheader(t *testing.T) { in := `
hidden junk

Hello world

` got := SanitizeHTML(in) if strings.Contains(got, "hidden junk") { t.Fatalf("hidden preheader leaked after sanitize: %q", got) } if !strings.Contains(got, "Hello world") { t.Fatalf("visible content missing: %q", got) } } func TestStripInvisibleTextRuns(t *testing.T) { in := "Hello " + strings.Repeat("\u034f\u200c\u00a0\u2007 ", 30) + "world" got := StripInvisibleTextRuns(in) if strings.Contains(got, "\u034f") { t.Fatalf("padding remains: %q", got) } if got != "Hello world" { t.Fatalf("got %q", got) } } func TestStripInvisibleTextRuns_preservesNewlines(t *testing.T) { in := "Reply line one\nOn 22/04/2026 wrote:\n> quoted" got := StripInvisibleTextRuns(in) if !strings.Contains(got, "\n") { t.Fatalf("newlines collapsed: %q", got) } if !strings.Contains(got, "> quoted") { t.Fatalf("quote line missing: %q", got) } }