25 lines
976 B
TypeScript
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.");
|