import { html, stubNetwork } from "../../helpers.ts"; import { assertEquals } from "@std/assert"; import { fetchRichContent } from "../../../services/rich-content-service.ts"; const BASE = "https://example.com/articles/1"; Deno.test("generic provider: the full fallback chain", async () => { using _ = stubNetwork(() => html(`
`)
);
const content = await fetchRichContent("https://www.example.com/articles/1");
assertEquals(content?.title, "Article title");
assertEquals(content?.thumbnailUrl, "https://www.example.com/photo.jpg");
assertEquals(content?.siteName, "example.com");
assertEquals(content?.faviconUrl, "https://www.example.com/favicon.ico");
});
Deno.test("generic provider: non-HTML responses carry just the URL", async () => {
using _ = stubNetwork(() =>
new Response("{}", { headers: { "content-type": "application/json" } })
);
assertEquals(await fetchRichContent(BASE), { type: "generic", url: BASE });
});