27 lines
918 B
TypeScript
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");
|
|
});
|
|
});
|