core/source/test/test.mocha.ts
Christian Fraß 27d6b4eb16 [int]
2023-08-03 08:34:33 +02:00

103 lines
2.5 KiB
TypeScript

const nm_assert = require("assert");
declare var describe;
declare var it;
_heimdall.init();
describe(
"heimdall",
() => {
function datetimestring_to_timestamp(datetimestring) {
return Math.floor((new Date(datetimestring)).getTime() / 1000);
};
describe(
"master.determine_due",
() => {
const cases = [
{
"name": "regular interval hit",
"input": {
"check": {
"active": true,
"threshold": 1,
"annoy": false,
"schedule": {
"regular_interval": 3600,
"attentive_interval": 120,
"reminding_interval": 86400,
},
"notifications": [],
"name": "test",
"title": "Test",
"kind": "BOGUS",
"parameters": {},
"custom": null,
},
"timestamp": "2023-01-15T12:30:00",
"old_item_state": {
"timestamp": "2023-01-15T11:00:00",
"condition": _heimdall.enum_condition.ok,
"count": 0,
"last_notification_timestamp": "2023-01-15T10:00:00"
}
},
"output": true,
},
{
"name": "regular interval not hit",
"input": {
"check": {
"active": true,
"threshold": 1,
"annoy": false,
"schedule": {
"regular_interval": 3600,
"attentive_interval": 120,
"reminding_interval": 86400,
},
"notifications": [],
"name": "test",
"title": "Test",
"kind": "BOGUS",
"parameters": {},
"custom": null,
},
"timestamp": "2023-01-15T11:30:00",
"old_item_state": {
"timestamp": "2023-01-15T11:00:00",
"condition": _heimdall.enum_condition.ok,
"count": 0,
"last_notification_timestamp": "2023-01-15T10:00:00"
}
},
"output": false,
},
];
cases.forEach(
case_ => {
it(
case_.name,
() => {
// execution
const result : boolean = _heimdall.master.determine_due(
case_.input["check"],
datetimestring_to_timestamp(case_.input["timestamp"]),
{
"timestamp": datetimestring_to_timestamp(case_.input["old_item_state"]["timestamp"]),
"condition": case_.input["old_item_state"]["condition"],
"count": case_.input["old_item_state"]["count"],
"last_notification_timestamp": datetimestring_to_timestamp(case_.input["old_item_state"]["last_notification_timestamp"]),
}
);
// assertions
nm_assert.equal(result, case_.output);
}
);
}
);
}
);
}
);