Some checks failed
deploy / deploy (push) Failing after 29s
Proof: npm test; npm run operator-dashboard:build; node --test test/near-intents-status.test.mjs test/environment-status-history.test.mjs test/operator-dashboard.test.mjs test/operator-dashboard-ui-static.test.mjs test/ops-sentinel-static.test.mjs; PYTHONPATH=. python3 test/repo_deployments_test.py; kubectl kustomize deploy/k8s/base. Assumptions: NEAR Intents public status page API remains the official upstream environmental-status source; status fingerprint changes are the durable boundary for saving environmental history. Still fake: This stores and displays official upstream status changes, but it does not create an alternate quote source or make NEAR quoting operational during an upstream pause.
82 lines
3.5 KiB
JavaScript
82 lines
3.5 KiB
JavaScript
import test from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
|
|
import { buildEventEnvelope } from '../src/core/event-envelope.mjs';
|
|
import { routeHistoryRecord } from '../src/core/history-records.mjs';
|
|
import { insertEnvironmentStatusChange } from '../src/lib/postgres.mjs';
|
|
|
|
function buildEnvironmentEvent({ fingerprint, status = 'disrupted', changedAt = '2026-04-16T12:40:00.000Z' }) {
|
|
return buildEventEnvelope({
|
|
source: 'ops-sentinel',
|
|
venue: 'near_intents',
|
|
eventType: 'environment_status',
|
|
observedAt: changedAt,
|
|
ingestedAt: changedAt,
|
|
payload: {
|
|
environment_status_id: `status-${fingerprint}-${changedAt}`,
|
|
environment_key: 'near_intents_status_page',
|
|
source: 'near_intents_status_page',
|
|
status,
|
|
label: status === 'operational' ? 'operational' : 'upstream paused',
|
|
status_fingerprint: fingerprint,
|
|
previous_status_fingerprint: null,
|
|
observed_at: changedAt,
|
|
changed_at: changedAt,
|
|
decisive_reason: status === 'operational' ? 'No active incident.' : '1Click quoting paused.',
|
|
current_incident_count: status === 'operational' ? 0 : 1,
|
|
current_incidents: [],
|
|
affected_services: [],
|
|
quoting_stopped: status !== 'operational',
|
|
},
|
|
});
|
|
}
|
|
|
|
function createDedupePool() {
|
|
const rows = [];
|
|
return {
|
|
rows,
|
|
async query(_sql, params) {
|
|
const environmentKey = params[9];
|
|
const payload = JSON.parse(params[10]);
|
|
const fingerprint = params[12];
|
|
const latest = rows.filter((row) => row.decision_key === environmentKey).at(-1);
|
|
if (latest?.payload.status_fingerprint === fingerprint) {
|
|
return { rowCount: 0, rows: [] };
|
|
}
|
|
rows.push({
|
|
event_id: params[0],
|
|
decision_key: environmentKey,
|
|
payload,
|
|
});
|
|
return { rowCount: 1, rows: [{ event_id: params[0] }] };
|
|
},
|
|
};
|
|
}
|
|
|
|
test('environment status events route into their own durable history table', () => {
|
|
const event = buildEnvironmentEvent({ fingerprint: 'fp-1' });
|
|
const routed = routeHistoryRecord({
|
|
topic: 'ops.environment_status',
|
|
event,
|
|
});
|
|
|
|
assert.equal(routed.table, 'environment_status_events');
|
|
assert.equal(routed.record.decision_key, 'near_intents_status_page');
|
|
assert.equal(routed.record.quote_id, null);
|
|
});
|
|
|
|
test('environment status persistence stores only fingerprint changes', async () => {
|
|
const pool = createDedupePool();
|
|
const first = buildEnvironmentEvent({ fingerprint: 'fp-1', changedAt: '2026-04-16T12:40:00.000Z' });
|
|
const duplicate = buildEnvironmentEvent({ fingerprint: 'fp-1', changedAt: '2026-04-16T12:41:00.000Z' });
|
|
const changed = buildEnvironmentEvent({ fingerprint: 'fp-2', status: 'operational', changedAt: '2026-04-16T12:42:00.000Z' });
|
|
|
|
const firstRoute = routeHistoryRecord({ topic: 'ops.environment_status', event: first });
|
|
const duplicateRoute = routeHistoryRecord({ topic: 'ops.environment_status', event: duplicate });
|
|
const changedRoute = routeHistoryRecord({ topic: 'ops.environment_status', event: changed });
|
|
|
|
assert.equal((await insertEnvironmentStatusChange(pool, { topic: 'ops.environment_status', event: first, record: firstRoute.record })).inserted, true);
|
|
assert.equal((await insertEnvironmentStatusChange(pool, { topic: 'ops.environment_status', event: duplicate, record: duplicateRoute.record })).inserted, false);
|
|
assert.equal((await insertEnvironmentStatusChange(pool, { topic: 'ops.environment_status', event: changed, record: changedRoute.record })).inserted, true);
|
|
assert.deepEqual(pool.rows.map((row) => row.payload.status_fingerprint), ['fp-1', 'fp-2']);
|
|
});
|