import assert from 'node:assert/strict'; import test from 'node:test'; import app from './index.js'; test('returns the published mileage metric contract', async () => { const response = await app.request('/metrics?domain=mileage'); const payload = await response.json(); assert.equal(response.status, 200); assert.equal(payload.catalogVersion, 6); assert.deepEqual(payload.domains, ['mileage']); assert.ok(payload.metrics.some((metric: { id: string }) => metric.id === 'mileage.assessment_completion_rate')); }); test('returns the published hydrogen metric contract', async () => { const response = await app.request('/metrics?domain=hydrogen'); const payload = await response.json(); assert.equal(response.status, 200); assert.deepEqual(payload.domains, ['hydrogen']); assert.ok(payload.metrics.some((metric: { id: string }) => metric.id === 'hydrogen.customer_revenue')); assert.ok(payload.metrics.some((metric: { id: string }) => metric.id === 'hydrogen.customer_order_gross_profit')); }); test('returns the published electric metric contract', async () => { const response = await app.request('/metrics?domain=electric'); const payload = await response.json(); assert.equal(response.status, 200); assert.equal(payload.catalogVersion, 6); assert.deepEqual(payload.domains, ['electric']); assert.ok(payload.metrics.some((metric: { id: string }) => metric.id === 'electric.charge_total_fee')); assert.ok(payload.metrics.some((metric: { id: string }) => metric.id === 'electric.blended_cost_intensity')); assert.ok(payload.metrics.some((metric: { id: string }) => metric.id === 'electric.data_freshness')); }); test('returns the published ETC metric contract', async () => { const response = await app.request('/metrics?domain=etc'); const payload = await response.json(); assert.equal(response.status, 200); assert.equal(payload.catalogVersion, 6); assert.deepEqual(payload.domains, ['etc']); assert.ok(payload.metrics.some((metric: { id: string }) => metric.id === 'etc.total_amount')); assert.ok(payload.metrics.some((metric: { id: string }) => metric.id === 'etc.bill_receivable')); }); test('rejects unpublished metric domains', async () => { const response = await app.request('/metrics?domain=energy'); assert.equal(response.status, 400); }); test('returns observed data-source outcomes without sensitive details', async () => { const response = await app.request('/data-sources'); const payload = await response.json(); assert.equal(response.status, 200); assert.equal(payload.semantics, 'observed-requests'); assert.ok(Array.isArray(payload.sources)); assert.equal(JSON.stringify(payload).includes('password'), false); });