import { describe, it, expect } from "vitest"; import { renderSVGBarChart } from "./bar"; describe("bar", () => { describe("renderSVGBarChart", () => { it("returns empty string for empty data", () => { expect(renderSVGBarChart([])).toBe(""); }); it("returns empty string for null/undefined", () => { expect(renderSVGBarChart(null as unknown as never[])).toBe(""); }); it("returns SVG with rect for single bar", () => { const data = [{ date: "2025-02-17", completed: 5, failed: 2 }]; const svg = renderSVGBarChart(data); expect(svg).toContain(' { const data = [ { date: "2025-02-15", completed: 3, failed: 0 }, { date: "2025-02-16", completed: 5, failed: 1 }, { date: "2025-02-17", completed: 2, failed: 3 }, ]; const svg = renderSVGBarChart(data); expect(svg).toContain(' { const data = [{ date: "2025-02-17", completed: 0, failed: 0 }]; const svg = renderSVGBarChart(data); expect(svg).toContain(" { const data = [{ date: "2025-02-17", completed: 1, failed: 0 }]; const svg = renderSVGBarChart(data); expect(svg).toContain("02/17"); }); it("handles dates without enough parts (falls back to full date)", () => { const data = [{ date: "2025", completed: 1, failed: 0 }]; const svg = renderSVGBarChart(data); expect(svg).toContain("2025"); }); it("escapes HTML in labels", () => { const data = [{ date: "2025-02-17