using PrivaPub.Domain.Content; using PrivaPub.Models.Post; namespace PrivaPub.Tests.Domain { public class LinkPreviewTests { [Fact] public void Reads_open_graph_then_twitter_then_the_page_title() { var preview = LinkPreviews.Read("https://news.example/a?utm_source=x", new Uri("https://news.example/a"), """ Fallback title """); Assert.Equal("Rain & sun", preview.Title); Assert.Equal("A long story", preview.Description); Assert.Equal("https://news.example/img/cover.jpg", preview.ImageURL); Assert.Equal("News", preview.SiteName); Assert.False(preview.Failed); Assert.True(LinkPreviews.Read("https://x.example", new Uri("https://x.example"), "nothing").Failed); } [Fact] public void Picks_the_first_real_link_and_skips_mentions_tags_quotes_and_ourselves() => Assert.Equal("https://blog.example/post", LinkPreviews.FirstLink(new Post { Url = "https://m.example/@a/1", ContentHtml = """

@bob RE: link me self read this

""" }, "https://privapub.test")); } }