import { expect, test } from 'vitest'; import { buildCenteredSquareImageCropRect, clampSquareImageCropRect, } from './squareImageCropModel'; test('builds a centered square crop from a rectangular image', () => { expect(buildCenteredSquareImageCropRect({ width: 1200, height: 800 })).toEqual({ x: 200, y: 0, size: 800, }); }); test('clamps square crop size and position inside image bounds', () => { expect( clampSquareImageCropRect( { width: 300, height: 200 }, { x: 260, y: -30, size: 500 }, ), ).toEqual({ x: 100, y: 0, size: 200, }); expect( clampSquareImageCropRect( { width: 300, height: 200 }, { x: 120, y: 90, size: 10 }, ), ).toEqual({ x: 120, y: 90, size: 48, }); });