ai-chatbot/tests/routes/canvas-zoom.test.ts

27 lines
918 B
TypeScript

import { expect, test } from "@playwright/test";
import {
CANVAS_MAX_ZOOM,
CANVAS_MIN_ZOOM,
sanitizeCanvasZoomInput,
stepCanvasZoom,
} from "@/lib/canvas/zoom";
test.describe("video canvas zoom", () => {
test("uses the competitor's 1.2x zoom factor in both directions", () => {
expect(stepCanvasZoom(0.5, "in")).toBe(0.6);
expect(stepCanvasZoom(1, "in")).toBe(1.2);
expect(stepCanvasZoom(1.2, "out")).toBe(1);
expect(stepCanvasZoom(0.5, "out")).toBe(0.42);
expect(stepCanvasZoom(0.42, "out")).toBe(0.35);
});
test("clamps zoom steps to the observed ten and eight-hundred percent limits", () => {
expect(stepCanvasZoom(CANVAS_MIN_ZOOM, "out")).toBe(CANVAS_MIN_ZOOM);
expect(stepCanvasZoom(CANVAS_MAX_ZOOM, "in")).toBe(CANVAS_MAX_ZOOM);
});
test("keeps only digits in manual percentage input", () => {
expect(sanitizeCanvasZoomInput("12a.5%")).toBe("125");
});
});