import test from 'node:test'; import assert from 'node:assert/strict'; import { readFileSync } from 'node:fs'; const source = readFileSync(new URL('../src/apps/history-writer.mjs', import.meta.url), 'utf8'); test('history writer replays durable topics but joins the raw quote firehose live', () => { assert.match(source, /groupId:\s*`\$\{config\.kafkaConsumerGroupHistory\}-raw`/); assert.match(source, /rawQuoteConsumer\.subscribe\(\{[\s\S]+fromBeginning:\s*false/); assert.match(source, /consumer\.subscribe\(\{[\s\S]+fromBeginning:\s*true/); assert.match(source, /Raw quote volume is a live firehose/); assert.match(source, /runHistoryConsumer\(consumer\)/); assert.match(source, /runHistoryConsumer\(rawQuoteConsumer\)/); assert.match(source, /eachBatch/); assert.match(source, /insertHistoryEvents/); }); test('history writer passes tracked assets into portfolio valuation', () => { assert.match(source, /trackedAssets:\s*tradingConfig\.trackedAssets/); assert.match(source, /valuationAssets:\s*inputs\.valuationAssets \|\| \[\]/); assert.match(source, /inputs\.valuationAssets[\s\S]+asset\.priceId/); });