Files
Checkmate/server/tests/db/pageSpeedCheckModule.test.js
Alex Holliday bfa6832beb format
2025-07-21 10:34:16 -07:00

64 lines
1.9 KiB
JavaScript
Executable File

import sinon from "sinon";
import PageSpeedCheck from "../../db/models/PageSpeedCheck.js";
import { createPageSpeedCheck, deletePageSpeedChecksByMonitorId } from "../../db/mongo/modules/pageSpeedCheckModule.js";
const mockPageSpeedCheck = {
monitorId: "monitorId",
bestPractices: 1,
seo: 1,
performance: 1,
};
const mockDeletedResult = { deletedCount: 1 };
describe("pageSpeedCheckModule", function () {
let pageSpeedCheckSaveStub, pageSpeedCheckDeleteManyStub;
beforeEach(function () {
pageSpeedCheckSaveStub = sinon.stub(PageSpeedCheck.prototype, "save");
pageSpeedCheckDeleteManyStub = sinon.stub(PageSpeedCheck, "deleteMany");
});
afterEach(function () {
sinon.restore();
});
describe("createPageSpeedCheck", function () {
it("should return a page speed check", async function () {
pageSpeedCheckSaveStub.resolves(mockPageSpeedCheck);
const pageSpeedCheck = await createPageSpeedCheck(mockPageSpeedCheck);
expect(pageSpeedCheck).to.deep.equal(mockPageSpeedCheck);
});
it("should handle an error", async function () {
const err = new Error("test error");
pageSpeedCheckSaveStub.rejects(err);
try {
await expect(createPageSpeedCheck(mockPageSpeedCheck));
} catch (error) {
expect(error).to.exist;
expect(error).to.deep.equal(err);
}
});
});
describe("deletePageSpeedChecksByMonitorId", function () {
it("should return the number of deleted checks", async function () {
pageSpeedCheckDeleteManyStub.resolves(mockDeletedResult);
const result = await deletePageSpeedChecksByMonitorId("monitorId");
expect(result).to.deep.equal(mockDeletedResult.deletedCount);
});
it("should handle an error", async function () {
const err = new Error("test error");
pageSpeedCheckDeleteManyStub.rejects(err);
try {
await expect(deletePageSpeedChecksByMonitorId("monitorId"));
} catch (error) {
expect(error).to.exist;
expect(error).to.deep.equal(err);
}
});
});
});