103 lines
2.5 KiB
TypeScript
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);
|
|
}
|
|
);
|
|
}
|
|
);
|
|
}
|
|
);
|
|
}
|
|
);
|