import { expect, test, describe } from "vitest"; import { createJimp } from "@jimp/core"; import { makeTestImage } from "@jimp/test-utils"; import { methods as crop } from "./index.js"; const jimp = createJimp({ plugins: [crop], formats: [] }); describe("crop", () => { // 6x5 size const testImage = makeTestImage( " ◆◆ ", " ◆▦▦◆ ", "◆▦▦▦▦◆", " ◆▦▦◆ ", " ◆◆ ", ); test("full width from top", () => { expect( jimp.fromBitmap(testImage).crop({ x: 0, y: 0, w: 6, h: 2 }), ).toMatchSnapshot(); }); test("full width from bottom", () => { expect( jimp.fromBitmap(testImage).crop({ x: 0, y: 3, w: 6, h: 2 }), ).toMatchSnapshot(); }); test("full width from middle", () => { expect( jimp.fromBitmap(testImage).crop({ x: 0, y: 2, w: 6, h: 2 }), ).toMatchSnapshot(); }); test("full height from left", () => { expect( jimp.fromBitmap(testImage).crop({ x: 0, y: 0, w: 2, h: 5 }), ).toMatchSnapshot(); }); test("full height from right", () => { expect( jimp.fromBitmap(testImage).crop({ x: 4, y: 0, w: 2, h: 5 }), ).toMatchSnapshot(); }); test("full height from middle", () => { expect( jimp.fromBitmap(testImage).crop({ x: 2, y: 0, w: 2, h: 5 }), ).toMatchSnapshot(); }); });