refactor: expose ETC integration readiness

This commit is contained in:
kkfluous
2026-08-07 15:00:58 +08:00
parent cdf1fd27e7
commit 0fb62135f3
8 changed files with 363 additions and 76 deletions
+12
View File
@@ -42,9 +42,21 @@ test('publishes electric fee components and blended cost semantics', () => {
assert.equal(byId.get('electric.blended_cost_intensity')?.aggregation, 'weighted-ratio');
});
test('publishes ETC passage and billing metrics as separate grains', () => {
const metrics = listMetricDefinitions('etc');
const byId = new Map(metrics.map(metric => [metric.id, metric]));
assert.ok(metrics.length >= 9);
assert.equal(byId.get('etc.total_amount')?.sources[0], 'etc_toll_record');
assert.equal(byId.get('etc.bill_receivable')?.sources[0], 'energy_etc_bill');
assert.equal(byId.get('etc.company_borne_amount')?.formula.includes('cost_type = 2'), true);
assert.equal(byId.get('etc.customer_borne_amount')?.formula.includes('cost_type = 1'), true);
});
test('validates only published metric domains', () => {
assert.equal(isMetricDomain('mileage'), true);
assert.equal(isMetricDomain('hydrogen'), true);
assert.equal(isMetricDomain('electric'), true);
assert.equal(isMetricDomain('etc'), true);
assert.equal(isMetricDomain('unknown'), false);
});