← back to Tk 10821 Enrichment Health Classifier

test.mjs

26 lines

#!/usr/bin/env node
import assert from 'node:assert/strict';
import fs from 'node:fs';
import { classify } from './classify.mjs';

const current = JSON.parse(fs.readFileSync(new URL('./fixtures/current-2026-08-30.json', import.meta.url)));
assert.deepEqual(classify(current), {
  verdict: 'ALIVE_UPSTREAM_CONSTRAINED', stalled: false,
  reasons: [
    'last phase3 advance 8.81h ago', '1 completed in 24h',
    'cron last_exit=0, completed_today=true',
    'sample run updated 0/42; 42/42 returned no AI data'
  ]
});

const dead = { hours_since_last_advance: 56, processed_24h: 0, cron_last_exit: 1, cron_completed_today: false, actionable_pending: 4210 };
assert.equal(classify(dead).verdict, 'STALLED');

const inflowMasksWork = { hours_since_last_advance: 2, processed_24h: 50, cron_last_exit: 0, cron_completed_today: true, actionable_pending: 4300, previous_actionable_pending: 4210 };
assert.equal(classify(inflowMasksWork).verdict, 'ALIVE_NET_BACKLOG_FLAT_OR_GROWING');
assert.equal(classify(inflowMasksWork).stalled, false);

const missing = { hours_since_last_advance: 2 };
assert.equal(classify(missing).verdict, 'DEGRADED_OBSERVABILITY');
console.log('PASS: current, true-stall, inflow-masks-work, and missing-evidence classifications');