Files
ttstd-infinite-canvas/web/test/canvas-text-scale.test.ts

24 lines
883 B
TypeScript

import { describe, expect, test } from "bun:test";
import { canvasTextFontSize } from "@/lib/canvas/canvas-text-scale";
describe("canvas text font scaling", () => {
test("keeps the configured base size at the default node size", () => {
expect(canvasTextFontSize(340, 240, 14)).toBe(14);
});
test("scales proportionally when the node grows in both directions", () => {
expect(canvasTextFontSize(680, 480, 14)).toBeCloseTo(28);
});
test("responds when only one dimension changes", () => {
expect(canvasTextFontSize(680, 240, 14)).toBeCloseTo(14 * Math.sqrt(2));
});
test("uses metadata font size as the base and clamps extremes", () => {
expect(canvasTextFontSize(340, 240, 20)).toBe(20);
expect(canvasTextFontSize(1, 1, 2)).toBe(8);
expect(canvasTextFontSize(10_000, 10_000, 20)).toBe(72);
});
});