fix: persist LLM predictions without stable ID shadowing
This commit is contained in:
44
test/intelligence-store.test.mjs
Normal file
44
test/intelligence-store.test.mjs
Normal file
@@ -0,0 +1,44 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import { mkdtempSync, rmSync } from 'node:fs';
|
||||
import { tmpdir } from 'node:os';
|
||||
import { join } from 'node:path';
|
||||
import { IntelligenceStore } from '../lib/intelligence-store.mjs';
|
||||
|
||||
test('records LLM ideas as stable predictions', async (t) => {
|
||||
const directory = mkdtempSync(join(tmpdir(), 'intelligence-store-'));
|
||||
t.after(() => rmSync(directory, { recursive: true, force: true }));
|
||||
|
||||
const store = await new IntelligenceStore(join(directory, 'intelligence.db')).init();
|
||||
if (!store.available) {
|
||||
t.skip(`node:sqlite unavailable: ${store.reason}`);
|
||||
return;
|
||||
}
|
||||
|
||||
store.recordRun({
|
||||
meta: {
|
||||
timestamp: '2026-07-04T10:17:51.011Z',
|
||||
sourcesOk: 22,
|
||||
sourcesDegraded: 7,
|
||||
sourcesFailed: 0,
|
||||
},
|
||||
ideasSource: 'llm',
|
||||
ideas: [{
|
||||
title: 'Gold safe-haven hedge',
|
||||
type: 'HEDGE',
|
||||
ticker: 'GLD',
|
||||
confidence: 'MEDIUM',
|
||||
rationale: 'Geopolitical risk remains elevated.',
|
||||
risk: 'Risk appetite recovers.',
|
||||
horizon: 'Weeks',
|
||||
signals: ['geopolitical escalation'],
|
||||
source: 'llm',
|
||||
}],
|
||||
}, { summary: { direction: 'risk-off' } });
|
||||
|
||||
const result = store.listPredictions({ limit: 10 });
|
||||
assert.equal(result.available, true);
|
||||
assert.equal(result.predictions.length, 1);
|
||||
assert.equal(result.predictions[0].title, 'Gold safe-haven hedge');
|
||||
assert.match(result.predictions[0].stable_id, /^prediction-/);
|
||||
});
|
||||
Reference in New Issue
Block a user