package email import ( "strings" "testing" "time" ) func TestRenderDigest_HTMLNotEscaped(t *testing.T) { // Create test data with HTML content data := &DigestData{ ConfigName: "Test Config", TotalItems: 1, FeedGroups: []FeedGroup{ { FeedName: "Test Feed", FeedURL: "https://example.com/feed", Items: []FeedItem{ { Title: "Test Article", Link: "https://example.com/article", Content: "

This is a test article with a link.

", Published: time.Now(), }, }, }, }, } // Render with inline mode enabled htmlOutput, _, err := RenderDigest(data, true, 30, false, false) if err != nil { t.Fatalf("RenderDigest failed: %v", err) } // Debug: print actual output t.Logf("HTML Output:\n%s", htmlOutput) // Verify HTML is NOT escaped (should contain actual tags, not < entities) if strings.Contains(htmlOutput, "<p>") { t.Error("HTML is being escaped - found <p> instead of

") } if strings.Contains(htmlOutput, "<strong>") { t.Error("HTML is being escaped - found <strong> instead of ") } // Verify HTML tags are present (not escaped) if !strings.Contains(htmlOutput, "

This is a test") { t.Error("HTML tags are not being rendered - content appears to be escaped") } } func TestRenderDigest_UnsafeHTMLStripped(t *testing.T) { // Create test data with unsafe HTML content data := &DigestData{ ConfigName: "Test Config", TotalItems: 1, FeedGroups: []FeedGroup{ { FeedName: "Test Feed", FeedURL: "https://example.com/feed", Items: []FeedItem{ { Title: "Test Article", Link: "https://example.com/article", Content: "

Safe content

No styles

", Published: time.Now(), }, }, }, }, } // Render with inline mode enabled htmlOutput, _, err := RenderDigest(data, true, 30, false, false) if err != nil { t.Fatalf("RenderDigest failed: %v", err) } // Debug: print actual output t.Logf("HTML Output:\n%s", htmlOutput) // Verify script tags are removed if strings.Contains(htmlOutput, "