refactor: publish mileage metric catalog

This commit is contained in:
kkfluous
2026-08-07 13:54:51 +08:00
parent 13e720c2c3
commit ce50265771
5 changed files with 177 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
import assert from 'node:assert/strict';
import test from 'node:test';
import {
METRIC_CATALOG,
isMetricDomain,
listMetricDefinitions,
} from './catalog.js';
test('metric ids are unique and namespaced by domain', () => {
const ids = METRIC_CATALOG.map(metric => metric.id);
assert.equal(new Set(ids).size, ids.length);
assert.ok(METRIC_CATALOG.every(metric => metric.id.startsWith(`${metric.domain}.`)));
});
test('lists mileage metrics without exposing the catalog array', () => {
const metrics = listMetricDefinitions('mileage');
assert.ok(metrics.length >= 5);
assert.notEqual(metrics, METRIC_CATALOG);
assert.ok(metrics.every(metric => metric.domain === 'mileage'));
});
test('validates only published metric domains', () => {
assert.equal(isMetricDomain('mileage'), true);
assert.equal(isMetricDomain('unknown'), false);
});