diff --git a/Server/tests/db/hardwareCheckModule.test.js b/Server/tests/db/hardwareCheckModule.test.js new file mode 100644 index 000000000..530f5f4f8 --- /dev/null +++ b/Server/tests/db/hardwareCheckModule.test.js @@ -0,0 +1,73 @@ +import sinon from "sinon"; +import HardwareCheck from "../../db/models/HardwareCheck.js"; +import { createHardwareCheck } from "../../db/mongo/modules/hardwareCheckModule.js"; + +const mockHardwareCheck = { + data: { + cpu: { + physical_core: 4, + logical_core: 8, + frequency: 4800, + current_frequency: 1411, + temperature: [45, 50, 46, 47, 45, 50, 46, 47], + free_percent: 0.8552990910595134, + usage_percent: 0.14470090894048657, + }, + memory: { + total_bytes: 16467628032, + available_bytes: 7895044096, + used_bytes: 6599561216, + usage_percent: 0.4008, + }, + disk: [ + { + read_speed_bytes: null, + write_speed_bytes: null, + total_bytes: 931258499072, + free_bytes: 737097256960, + usage_percent: 0.1661, + }, + ], + host: { + os: "linux", + platform: "ubuntu", + kernel_version: "6.8.0-48-generic", + }, + }, + errors: [ + { + metric: ["cpu.temperature"], + err: "unable to read CPU temperature", + }, + ], +}; + +describe("HardwareCheckModule", () => { + let hardwareCheckSaveStub; + beforeEach(() => { + hardwareCheckSaveStub = sinon.stub(HardwareCheck.prototype, "save"); + }); + + afterEach(() => { + sinon.restore(); + }); + + describe("createHardwareCheck", () => { + it("should return a hardware check", async () => { + hardwareCheckSaveStub.resolves(mockHardwareCheck); + const hardwareCheck = await createHardwareCheck({}); + expect(hardwareCheck).to.exist; + expect(hardwareCheck).to.deep.equal(mockHardwareCheck); + }); + it("should handle an error", async () => { + const err = new Error("test error"); + hardwareCheckSaveStub.rejects(err); + try { + await createHardwareCheck({}); + } catch (error) { + expect(error).to.exist; + expect(error).to.deep.equal(err); + } + }); + }); +});