mirror of
https://github.com/bluewave-labs/Checkmate.git
synced 2026-01-01 07:09:43 -06:00
58 lines
1.8 KiB
JavaScript
Executable File
58 lines
1.8 KiB
JavaScript
Executable File
import { expect } from "chai";
|
|
import sinon from "sinon";
|
|
import sharp from "sharp";
|
|
import { GenerateAvatarImage } from "../../utils/imageProcessing.js";
|
|
|
|
describe("imageProcessing - GenerateAvatarImage", function () {
|
|
it("should resize the image to 64x64 and return a base64 string", async function () {
|
|
const file = {
|
|
buffer: Buffer.from("test image buffer"),
|
|
};
|
|
|
|
// Stub the sharp function
|
|
const toBufferStub = sinon.stub().resolves(Buffer.from("resized image buffer"));
|
|
const resizeStub = sinon.stub().returns({ toBuffer: toBufferStub });
|
|
const sharpStub = sinon
|
|
.stub(sharp.prototype, "resize")
|
|
.returns({ toBuffer: toBufferStub });
|
|
|
|
const result = await GenerateAvatarImage(file);
|
|
|
|
// Verify the result
|
|
const expected = Buffer.from("resized image buffer").toString("base64");
|
|
expect(result).to.equal(expected);
|
|
|
|
// Verify that the sharp function was called with the correct arguments
|
|
expect(sharpStub.calledOnceWith({ width: 64, height: 64, fit: "cover" })).to.be.true;
|
|
expect(toBufferStub.calledOnce).to.be.true;
|
|
|
|
// Restore the stubbed functions
|
|
sharpStub.restore();
|
|
});
|
|
|
|
it("should throw an error if resizing fails", async function () {
|
|
const file = {
|
|
buffer: Buffer.from("test image buffer"),
|
|
};
|
|
|
|
// Stub the sharp function to throw an error
|
|
const toBufferStub = sinon.stub().rejects(new Error("Resizing failed"));
|
|
const resizeStub = sinon.stub().returns({ toBuffer: toBufferStub });
|
|
const sharpStub = sinon
|
|
.stub(sharp.prototype, "resize")
|
|
.returns({ toBuffer: toBufferStub });
|
|
|
|
try {
|
|
await GenerateAvatarImage(file);
|
|
// If no error is thrown, fail the test
|
|
expect.fail("Expected error to be thrown");
|
|
} catch (error) {
|
|
// Verify that the error message is correct
|
|
expect(error.message).to.equal("Resizing failed");
|
|
}
|
|
|
|
// Restore the stubbed functions
|
|
sharpStub.restore();
|
|
});
|
|
});
|