import { describe, expect, test } from "bun:test"; import sanitizeRichTextHtml from "./sanitize-rich-text-html"; describe("sanitizeRichTextHtml", () => { test("returns an empty string for empty input", () => { expect(sanitizeRichTextHtml({ html: "" })).toBe(""); expect(sanitizeRichTextHtml({ html: null })).toBe(""); expect(sanitizeRichTextHtml({})).toBe(""); }); test("keeps safe formatting", () => { expect( sanitizeRichTextHtml({ html: "
Hello world
", }), ).toBe("Hello world
"); }); test("strips script tags and their contents", () => { const clean = sanitizeRichTextHtml({ html: `Hi
`, }); expect(clean).toBe("Hi
"); expect(clean).not.toContain("script"); }); test("strips event handler attributes", () => { const clean = sanitizeRichTextHtml({ html: `Hi
ok
`, }); expect(clean).toBe("ok
"); }); test("adds rel=noopener to links", () => { const clean = sanitizeRichTextHtml({ html: `x`, }); expect(clean).toContain(`rel="noopener noreferrer"`); }); });