import assert from 'node:assert/strict'; import test from 'node:test'; import { BASELINE_MATURITY, canEmitHealthEvent, isValidObservationForBaseline, resolveBaselineMaturity, } from './health-baseline-maturity.mjs'; test('maturity gates alerts until the baseline is stable', () => { assert.equal(resolveBaselineMaturity(3), BASELINE_MATURITY.COLD); assert.equal(resolveBaselineMaturity(10), BASELINE_MATURITY.WEAK); assert.equal(resolveBaselineMaturity(30), BASELINE_MATURITY.STABLE); assert.equal(canEmitHealthEvent('cold', 'watch'), false); assert.equal(canEmitHealthEvent('weak', 'alert'), false); assert.equal(canEmitHealthEvent('weak', 'info'), true); assert.equal(canEmitHealthEvent('stable', 'alert'), true); }); test('suspect rows are excluded from baseline samples', () => { assert.equal(isValidObservationForBaseline({ quality_flag: 'ok', deleted_at: null }), true); assert.equal(isValidObservationForBaseline({ qualityFlag: 'ok', deletedAt: null }), true); assert.equal(isValidObservationForBaseline({ quality_flag: 'suspect', deleted_at: null }), false); assert.equal(isValidObservationForBaseline({ qualityFlag: 'suspect', deletedAt: null }), false); });