import { describe, expect, test } from "bun:test"; import { escapeXml, escapeXmlAttr } from "../xml"; describe("escapeXml", () => { test("escapes ampersand", () => { expect(escapeXml("a & b")).toBe("a & b"); }); test("escapes less-than", () => { expect(escapeXml("
")).toBe("<div>"); }); test("escapes greater-than", () => { expect(escapeXml("a > b")).toBe("a > b"); }); test("escapes multiple special chars", () => { expect(escapeXml("")).toBe("<a & b>"); }); test("returns empty string unchanged", () => { expect(escapeXml("")).toBe(""); }); test("returns normal text unchanged", () => { expect(escapeXml("hello world")).toBe("hello world"); }); }); describe("escapeXmlAttr", () => { test("escapes double quotes", () => { expect(escapeXmlAttr('say "hello"')).toBe("say "hello""); }); test("escapes single quotes", () => { expect(escapeXmlAttr("it's")).toBe("it's"); }); test("escapes all special chars", () => { expect(escapeXmlAttr('')).toBe("<a & "b">"); }); });