Files
govoplan-ops/webui/tests/runtime-status.test.ts

25 lines
976 B
TypeScript

import assert from "node:assert/strict";
import {
heartbeatAgeLabel,
heartbeatAgeSeconds,
knownMetric,
knownQueueDepthTotal,
runtimeWorkTone,
shouldPollRuntimeStatus
} from "../src/features/ops/runtimeStatus";
assert.equal(knownMetric(null), "unavailable");
assert.equal(knownMetric(0), 0);
assert.equal(knownQueueDepthTotal({ mail: null }), null);
assert.equal(knownQueueDepthTotal({ mail: 0, calendar: 2 }), 2);
assert.equal(runtimeWorkTone("stale"), "danger");
assert.equal(runtimeWorkTone("disabled"), "neutral");
assert.equal(heartbeatAgeSeconds(Date.parse("2026-08-19T12:01:00Z"), "2026-08-19T12:00:00Z"), 60);
assert.equal(heartbeatAgeLabel(60), "1m ago");
assert.equal(heartbeatAgeLabel(null), "unavailable");
assert.equal(shouldPollRuntimeStatus(true, false), false);
assert.equal(shouldPollRuntimeStatus(false, true), false);
assert.equal(shouldPollRuntimeStatus(false, false), true);
console.log("Ops runtime status and polling model tests passed.");