Files
Pien-Studio/apps/web/lib/canvas-geometry.test.ts
T
2026-05-31 03:04:30 +07:00

47 lines
1.1 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { buildFaceLabelOverlays } from "./canvas-geometry";
describe("buildFaceLabelOverlays", () => {
it("returns no overlays when target layer is missing", () => {
const overlays = buildFaceLabelOverlays(
[],
"missing",
[{ x: 10, y: 10, width: 20, height: 20 }],
{ x: 0, y: 0, scale: 1 },
);
expect(overlays).toEqual([]);
});
it("stacks overlapping labels to avoid collisions", () => {
const layers = [
{
id: "layer-1",
type: "raster" as const,
asset: null,
x: 20,
y: 30,
width: 180,
height: 120,
scale: 1,
rotation: 0,
opacity: 1,
effects: [],
visible: true,
},
];
const overlays = buildFaceLabelOverlays(
layers,
"layer-1",
[
{ x: 16, y: 20, width: 30, height: 30, label: "A" },
{ x: 17, y: 21, width: 30, height: 30, label: "B" },
],
{ x: 0, y: 0, scale: 1 },
);
expect(overlays).toHaveLength(2);
expect(overlays[0]?.top).toBeGreaterThan(overlays[1]?.top ?? 0);
});
});