Files
john b1577a16e9
Memind CI / Test, build, and release guards (push) Failing after 12m3s
fix: harden release gate and page delivery
2026-07-26 14:32:01 +08:00

33 lines
1.3 KiB
JavaScript

import assert from 'node:assert/strict';
import test from 'node:test';
import {
expectedScenarioIds,
isScenarioExemptable,
loadScenarioCatalog,
SCENARIO_GROUP_COUNTS,
} from './catalog.mjs';
import { AUTOMATION_SUITES, validateAutomationSuites } from './coverage.mjs';
test('guardian catalog contains 187 unique contiguous scenario IDs', async () => {
const catalog = await loadScenarioCatalog();
assert.equal(catalog.length, 187);
assert.equal(new Set(catalog.map((scenario) => scenario.id)).size, 187);
assert.deepEqual(catalog.map((scenario) => scenario.id), expectedScenarioIds());
assert.equal(Object.values(SCENARIO_GROUP_COUNTS).reduce((sum, count) => sum + count, 0), 187);
});
test('non-exemptable scenarios match hard release protections', () => {
assert.equal(isScenarioExemptable('REL-01'), false);
assert.equal(isScenarioExemptable('COMP-09'), false);
assert.equal(isScenarioExemptable('MEM-14'), false);
assert.equal(isScenarioExemptable('SEARCH-04'), true);
});
test('automation suites reference unique catalog scenarios', async () => {
const catalog = await loadScenarioCatalog();
assert.equal(validateAutomationSuites(catalog), AUTOMATION_SUITES);
const assigned = AUTOMATION_SUITES.flatMap((suite) => suite.scenarios);
assert.equal(new Set(assigned).size, assigned.length);
});