2baf29b3ae
Deliver encrypted health zone, observation API, baseline maturity pipeline, page-data bindings, and H5/WeChat channel integration for health P0. Co-authored-by: Cursor <cursoragent@cursor.com>
26 lines
1.2 KiB
JavaScript
26 lines
1.2 KiB
JavaScript
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);
|
|
});
|