f96fdcb3b9
Lock health recording behind confirm-only state machines, reject public publishes for the health category, and ship the 14-day experiment Page Data templates with tests. Co-authored-by: Cursor <cursoragent@cursor.com>
24 lines
1008 B
JavaScript
24 lines
1008 B
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({ quality_flag: 'suspect', deleted_at: null }), false);
|
|
});
|