Some checks failed
deploy / deploy (push) Failing after 44s
Proof: npm test (143 passing); npm run operator-dashboard:build; git diff --cached --check. Assumptions: Derived portfolio/outcome refreshes are only useful for live freshness when the source event is within the same 30s inventory window enforced by request preflight. Still fake: No live asset migration submitted; legacy btc.omft remains tracked but not converted to nBTC by this change.
47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
import test from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
|
|
import { shouldRunDerivedRefreshForEvent } from '../src/core/history-writer-refresh-policy.mjs';
|
|
|
|
test('history writer derived refresh policy skips stale replayed events', () => {
|
|
assert.equal(shouldRunDerivedRefreshForEvent({
|
|
event: {
|
|
ingested_at: '2026-05-05T07:56:03.203Z',
|
|
},
|
|
now: '2026-05-07T14:12:00.000Z',
|
|
maxEventAgeMs: 300000,
|
|
}), false);
|
|
});
|
|
|
|
test('history writer derived refresh policy runs for fresh and undated events', () => {
|
|
assert.equal(shouldRunDerivedRefreshForEvent({
|
|
event: {
|
|
ingested_at: '2026-05-07T14:11:52.729Z',
|
|
},
|
|
now: '2026-05-07T14:12:00.000Z',
|
|
maxEventAgeMs: 300000,
|
|
}), true);
|
|
assert.equal(shouldRunDerivedRefreshForEvent({
|
|
event: {},
|
|
now: '2026-05-07T14:12:00.000Z',
|
|
maxEventAgeMs: 300000,
|
|
}), true);
|
|
});
|
|
|
|
test('history writer derived refresh policy skips events outside request freshness window', () => {
|
|
assert.equal(shouldRunDerivedRefreshForEvent({
|
|
event: {
|
|
ingested_at: '2026-05-07T14:11:20.000Z',
|
|
},
|
|
now: '2026-05-07T14:12:00.000Z',
|
|
maxEventAgeMs: 30000,
|
|
}), false);
|
|
|
|
assert.equal(shouldRunDerivedRefreshForEvent({
|
|
event: {
|
|
ingested_at: '2026-05-07T14:11:45.000Z',
|
|
},
|
|
now: '2026-05-07T14:12:00.000Z',
|
|
maxEventAgeMs: 30000,
|
|
}), true);
|
|
});
|