Files
Genarrative/src/services/storyEngine/narrativeConsistencyChecks.test.ts
T
kdletters cbc27bad4a
CI / verify (push) Has been cancelled
init with react+axum+spacetimedb
2026-04-26 18:06:23 +08:00

42 lines
1.2 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import { runNarrativeConsistencyChecks } from './narrativeConsistencyChecks';
describe('narrativeConsistencyChecks', () => {
it('flags too many active threads and missing payoff chronicle', () => {
const issues = runNarrativeConsistencyChecks({
memory: {
discoveredFactIds: [],
inferredFactIds: [],
activeThreadIds: ['a', 'b', 'c', 'd', 'e'],
resolvedScarIds: [],
recentCarrierIds: [],
chronicle: [],
},
threadContracts: [
{
id: 'contract-1',
threadId: 'thread-1',
issuerActorId: null,
narrativeType: 'investigation',
currentStepId: null,
visibleStage: 0,
steps: [],
followupThreadIds: [],
},
],
branchBudgetStatus: {
currentMajorDivergences: 1,
maxMajorDivergences: 3,
currentEndingFamilies: 1,
maxEndingFamilies: 5,
pressure: 'low',
issues: [],
},
});
expect(issues.some((issue) => issue.category === 'pacing')).toBe(true);
expect(issues.some((issue) => issue.category === 'payoff')).toBe(true);
});
});