refactor: publish mileage metric catalog
This commit is contained in:
@@ -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);
|
||||
});
|
||||
Reference in New Issue
Block a user