From 9eb06a477f4964f1b39f5212088e9e4ea4841b97 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Fri, 11 Oct 2024 10:49:44 +0800 Subject: [PATCH] Add tests for getChecks --- Server/controllers/checkController.js | 1 - .../tests/controllers/checkController.test.js | 57 ++++++++++++++++++- 2 files changed, 56 insertions(+), 2 deletions(-) diff --git a/Server/controllers/checkController.js b/Server/controllers/checkController.js index 130509b1e..b0e98ed38 100644 --- a/Server/controllers/checkController.js +++ b/Server/controllers/checkController.js @@ -20,7 +20,6 @@ const createCheck = async (req, res, next) => { await createCheckParamValidation.validateAsync(req.params); await createCheckBodyValidation.validateAsync(req.body); } catch (error) { - console.log(error); next(handleValidationError(error, SERVICE_NAME)); return; } diff --git a/Server/tests/controllers/checkController.test.js b/Server/tests/controllers/checkController.test.js index 43f431df2..8b8ecbfcd 100644 --- a/Server/tests/controllers/checkController.test.js +++ b/Server/tests/controllers/checkController.test.js @@ -1,4 +1,4 @@ -const { createCheck } = require("../../controllers/checkController"); +const { createCheck, getChecks } = require("../../controllers/checkController"); const jwt = require("jsonwebtoken"); const { errorMessages, successMessages } = require("../../utils/messages"); const sinon = require("sinon"); @@ -61,3 +61,58 @@ describe("Check Controller - createCheck", () => { expect(next.notCalled).to.be.true; }); }); + +describe("Check Controller - getChecks", () => { + beforeEach(() => { + req = { + params: {}, + query: {}, + db: { + getChecks: sinon.stub(), + getChecksCount: sinon.stub(), + }, + }; + res = { + status: sinon.stub().returnsThis(), + json: sinon.stub(), + }; + next = sinon.stub(); + }); + + afterEach(() => { + sinon.restore(); + }); + + it("should reject with a validation error if params are invalid", async () => { + await getChecks(req, res, next); + expect(next.firstCall.args[0]).to.be.an("error"); + expect(next.firstCall.args[0].status).to.equal(422); + }); + + it("should return a success message if checks are found", async () => { + req.params = { + monitorId: "monitorId", + }; + req.db.getChecks.resolves([{ id: "123" }]); + req.db.getChecksCount.resolves(1); + await getChecks(req, res, next); + expect(res.status.calledWith(200)).to.be.true; + expect( + res.json.calledWith({ + success: true, + msg: successMessages.CHECK_GET, + data: { checksCount: 1, checks: [{ id: "123" }] }, + }) + ).to.be.true; + expect(next.notCalled).to.be.true; + }); + + it("should handle errors", async () => { + req.db.getChecks.rejects(new Error("error")); + await getChecks(req, res, next); + expect(next.firstCall.args[0]).to.be.an("error"); + req.db.getChecks.resolves([]); + req.db.getChecksCount.rejects(new Error("error")); + await getChecks(req, res, next); + }); +});