restore repo structure
This commit is contained in:
1 parent
6df099a5b6
commit
8b7e3c650b
592 files changed
+37663
-127
No files matched your search
Executable
+139
@@ -0,0 +1,139 @@
|
||||
import sinon from "sinon";
|
||||
import HardwareCheck from "../../db/models/HardwareCheck.js";
|
||||
import { createHardwareCheck } from "../../db/mongo/modules/hardwareCheckModule.js";
|
||||
import Monitor from "../../db/models/Monitor.js";
|
||||
import logger from "../../utils/logger.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",
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const mockMonitor = {
|
||||
_id: "123",
|
||||
uptimePercentage: 1,
|
||||
status: true,
|
||||
save: () => this,
|
||||
};
|
||||
|
||||
describe("HardwareCheckModule", function () {
|
||||
let hardwareCheckSaveStub,
|
||||
hardwareCheckCountDocumentsStub,
|
||||
monitorFindByIdStub,
|
||||
loggerStub;
|
||||
|
||||
beforeEach(function () {
|
||||
loggerStub = sinon.stub(logger, "error");
|
||||
hardwareCheckSaveStub = sinon.stub(HardwareCheck.prototype, "save");
|
||||
monitorFindByIdStub = sinon.stub(Monitor, "findById");
|
||||
hardwareCheckCountDocumentsStub = sinon.stub(HardwareCheck, "countDocuments");
|
||||
});
|
||||
|
||||
afterEach(function () {
|
||||
sinon.restore();
|
||||
});
|
||||
|
||||
describe("createHardwareCheck", function () {
|
||||
it("should return a hardware check", async function () {
|
||||
hardwareCheckSaveStub.resolves(mockHardwareCheck);
|
||||
monitorFindByIdStub.resolves(mockMonitor);
|
||||
hardwareCheckCountDocumentsStub.resolves(1);
|
||||
const hardwareCheck = await createHardwareCheck({ status: true });
|
||||
expect(hardwareCheck).to.exist;
|
||||
expect(hardwareCheck).to.deep.equal(mockHardwareCheck);
|
||||
});
|
||||
|
||||
it("should return a hardware check for a check with status false", async function () {
|
||||
hardwareCheckSaveStub.resolves(mockHardwareCheck);
|
||||
monitorFindByIdStub.resolves(mockMonitor);
|
||||
hardwareCheckCountDocumentsStub.resolves(1);
|
||||
const hardwareCheck = await createHardwareCheck({ status: false });
|
||||
expect(hardwareCheck).to.exist;
|
||||
expect(hardwareCheck).to.deep.equal(mockHardwareCheck);
|
||||
});
|
||||
|
||||
it("should handle an error", async function () {
|
||||
const err = new Error("test error");
|
||||
monitorFindByIdStub.resolves(mockMonitor);
|
||||
hardwareCheckSaveStub.rejects(err);
|
||||
try {
|
||||
await createHardwareCheck({});
|
||||
} catch (error) {
|
||||
expect(error).to.exist;
|
||||
expect(error).to.deep.equal(err);
|
||||
}
|
||||
});
|
||||
|
||||
it("should log an error if a monitor is not found", async function () {
|
||||
monitorFindByIdStub.resolves(null);
|
||||
const res = await createHardwareCheck({});
|
||||
expect(loggerStub.calledOnce).to.be.true;
|
||||
expect(res).to.be.null;
|
||||
});
|
||||
|
||||
it("should handle a monitor with undefined uptimePercentage", async function () {
|
||||
monitorFindByIdStub.resolves({ ...mockMonitor, uptimePercentage: undefined });
|
||||
hardwareCheckSaveStub.resolves(mockHardwareCheck);
|
||||
hardwareCheckCountDocumentsStub.resolves(1);
|
||||
const res = await createHardwareCheck({});
|
||||
expect(res).to.exist;
|
||||
});
|
||||
|
||||
it("should handle a monitor with undefined uptimePercentage and true status", async function () {
|
||||
monitorFindByIdStub.resolves({
|
||||
...mockMonitor,
|
||||
uptimePercentage: undefined,
|
||||
});
|
||||
hardwareCheckSaveStub.resolves(mockHardwareCheck);
|
||||
hardwareCheckCountDocumentsStub.resolves(1);
|
||||
const res = await createHardwareCheck({ status: true });
|
||||
expect(res).to.exist;
|
||||
});
|
||||
|
||||
it("should handle a monitor with undefined uptimePercentage and false status", async function () {
|
||||
monitorFindByIdStub.resolves({
|
||||
...mockMonitor,
|
||||
uptimePercentage: undefined,
|
||||
});
|
||||
hardwareCheckSaveStub.resolves(mockHardwareCheck);
|
||||
hardwareCheckCountDocumentsStub.resolves(1);
|
||||
const res = await createHardwareCheck({ status: false });
|
||||
expect(res).to.exist;
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user