import { describe, expect, it } from "vitest"; import { constellationChartRows } from "@/lib/guides/export-image"; describe("guide image downloads", () => { it("orders constellation levels, adds C0, and scales against the maximum", () => { const rows = constellationChartRows([ { level: 1, cumulativePercent: "117", isGreat: false }, { level: 6, cumulativePercent: "234", isGreat: true }, ]); expect(rows.slice(0, 2)).toEqual([ { level: 6, percent: 234, isGreat: true, widthPercent: 100 }, { level: 1, percent: 117, isGreat: false, widthPercent: 50 }, ]); expect(rows[2]).toMatchObject({ level: 0, percent: 100, isGreat: false, }); expect(rows[2].widthPercent).toBeCloseTo(100 / 2.34); }); it("uses 100% as the minimum constellation chart scale", () => { expect( constellationChartRows([ { level: 2, cumulativePercent: "80", isGreat: false }, ]), ).toEqual([ { level: 2, percent: 80, isGreat: false, widthPercent: 80 }, { level: 0, percent: 100, isGreat: false, widthPercent: 100 }, ]); }); });