package ingestion import "testing" func TestExtractLede(t *testing.T) { tests := []struct { name string input string want string }{ { "plain text verbatim", "The president signed a new bill. More details followed in the afternoon session.", "The president signed a new bill. More details followed in the afternoon session.", }, { "single sentence", "Breaking news from the capital.", "Breaking news from the capital.", }, { "empty", "", "", }, { "html stripped", "

The company announced a major acquisition. Shares rose 5%.

", "The company announced a major acquisition. Shares rose 5%.", }, { "nested html", "

Apple revealed the iPhone 16. It features a new chip.

", "Apple revealed the iPhone 16. It features a new chip.", }, { "whitespace trimmed", " \n Some news happened today. More to come. \n ", "Some news happened today. More to come.", }, { "html entities decoded", "The U.S. & EU agreed on a "landmark" deal worth >$1bn.", `The U.S. & EU agreed on a "landmark" deal worth >$1bn.`, }, { "numeric entities", "It's a new era—one of change.", "It's a new era\u2014one of change.", }, { "adjacent block tags inject a space", "

...end of moments

Clarence B Jones, a former...

", "...end of moments Clarence B Jones, a former...", }, { "tags and entities combined", "

Oil prices rose & gas fell by >5%.

", "Oil prices rose & gas fell by >5%.", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got := extractLede(tt.input) if got != tt.want { t.Errorf("extractLede(%q) = %q, want %q", tt.input, got, tt.want) } }) } }