35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
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 },
|
|
]);
|
|
});
|
|
});
|