package telegram import ( "strings" "testing" "time" "olexsmir.xyz/x/is" ) func TestFeedEntryFromMessageWithImage(t *testing.T) { msg := &Message{ MessageID: 42, Caption: "hello ", Date: time.Date(2026, 4, 22, 19, 38, 0, 0, time.UTC).Unix(), PhotoBase64: "YWJj", PhotoMIMEType: "image/png", } entry := feedEntryFromMessage(msg) is.Equal(t, "🖼️ [2026-04-22]", entry.Title) is.Equal(t, "html", entry.ContentType) if !strings.Contains(entry.Content, "

hello <world>

") { t.Fatalf("expected escaped text in image entry: %s", entry.Content) } if !strings.Contains(entry.Content, `src="data:image/png;base64,YWJj"`) { t.Fatalf("expected image data URI in image entry: %s", entry.Content) } } func TestFeedEntryFromMessageTextOnly(t *testing.T) { msg := &Message{ MessageID: 11, Text: "plain text", Date: time.Date(2026, 4, 22, 19, 38, 0, 0, time.UTC).Unix(), } entry := feedEntryFromMessage(msg) is.Equal(t, "plain text", entry.Title) is.Equal(t, "", entry.ContentType) is.Equal(t, "plain text", entry.Content) } func TestFeedEntryFromMessageLinkifiesAndAddsAtomLinks(t *testing.T) { msg := &Message{ MessageID: 15, Text: "watch https://example.com and https://youtu.be/dQw4w9WgXcQ.", Date: time.Date(2026, 4, 23, 11, 0, 0, 0, time.UTC).Unix(), } entry := feedEntryFromMessage(msg) is.Equal(t, "html", entry.ContentType) if !strings.Contains(entry.Content, `https://example.com`) { t.Fatalf("expected generic link in content: %s", entry.Content) } if !strings.Contains(entry.Content, `https://youtu.be/dQw4w9WgXcQ`) { t.Fatalf("expected youtube link in content: %s", entry.Content) } is.Equal(t, 2, len(entry.Links)) is.Equal(t, "https://example.com", entry.Links[0].Href) is.Equal(t, "https://www.youtube.com/watch?v=dQw4w9WgXcQ", entry.Links[1].Href) is.Equal(t, "yt:video:dQw4w9WgXcQ", entry.ID) }