mirror of
https://github.com/bluewave-labs/Checkmate.git
synced 2025-12-31 14:49:36 -06:00
77 lines
2.5 KiB
JavaScript
Executable File
77 lines
2.5 KiB
JavaScript
Executable File
import sinon from "sinon";
|
|
import Notification from "../../db/models/Notification.js";
|
|
import { createNotification, getNotificationsByMonitorId, deleteNotificationsByMonitorId } from "../../db/mongo/modules/notificationModule.js";
|
|
|
|
describe("notificationModule", function () {
|
|
const mockNotification = {
|
|
monitorId: "123",
|
|
};
|
|
const mockNotifications = [mockNotification];
|
|
let notificationSaveStub, notificationFindStub, notificationDeleteManyStub;
|
|
|
|
beforeEach(function () {
|
|
notificationSaveStub = sinon.stub(Notification.prototype, "save").resolves();
|
|
notificationFindStub = sinon.stub(Notification, "find").resolves();
|
|
notificationDeleteManyStub = sinon.stub(Notification, "deleteMany").resolves();
|
|
});
|
|
|
|
afterEach(function () {
|
|
sinon.restore();
|
|
});
|
|
|
|
describe("createNotification", function () {
|
|
it("should create a new notification", async function () {
|
|
const notificationData = { _id: "123", name: "test" };
|
|
notificationSaveStub.resolves(notificationData);
|
|
const res = await createNotification(notificationData);
|
|
expect(res).to.deep.equal(notificationData);
|
|
});
|
|
|
|
it("should handle an error", async function () {
|
|
const err = new Error("test error");
|
|
notificationSaveStub.rejects(err);
|
|
try {
|
|
await createNotification(mockNotification);
|
|
} catch (error) {
|
|
expect(error).to.deep.equal(err);
|
|
}
|
|
});
|
|
});
|
|
|
|
describe("getNotificationsByMonitorId", function () {
|
|
it("should return notifications by monitor ID", async function () {
|
|
notificationFindStub.resolves(mockNotifications);
|
|
const res = await getNotificationsByMonitorId(mockNotification.monitorId);
|
|
expect(res).to.deep.equal(mockNotifications);
|
|
});
|
|
|
|
it("should handle an error", async function () {
|
|
const err = new Error("test error");
|
|
notificationFindStub.rejects(err);
|
|
try {
|
|
await getNotificationsByMonitorId(mockNotification.monitorId);
|
|
} catch (error) {
|
|
expect(error).to.deep.equal(err);
|
|
}
|
|
});
|
|
});
|
|
|
|
describe("deleteNotificationsByMonitorId", function () {
|
|
it("should delete notifications by monitor ID", async function () {
|
|
notificationDeleteManyStub.resolves({ deletedCount: mockNotifications.length });
|
|
const res = await deleteNotificationsByMonitorId(mockNotification.monitorId);
|
|
expect(res).to.deep.equal(mockNotifications.length);
|
|
});
|
|
|
|
it("should handle an error", async function () {
|
|
const err = new Error("test error");
|
|
notificationDeleteManyStub.rejects(err);
|
|
try {
|
|
await deleteNotificationsByMonitorId(mockNotification.monitorId);
|
|
} catch (error) {
|
|
expect(error).to.deep.equal(err);
|
|
}
|
|
});
|
|
});
|
|
});
|