55 lines
2.0 KiB
TypeScript
55 lines
2.0 KiB
TypeScript
import assert from "node:assert/strict";
|
|
import test from "node:test";
|
|
import { createBirthTimeJourneyService } from "../src/lib/birth-time-journey-service.ts";
|
|
import {
|
|
caseId,
|
|
dynamicCase,
|
|
legacyCase,
|
|
ownerId,
|
|
} from "./birth-time-dynamic-persistence-fixture.ts";
|
|
import { memoryStore } from "./birth-time-journey-memory-store.ts";
|
|
import { unusedJourneyEngine } from "./birth-time-journey-test-support.ts";
|
|
|
|
test("v2 resume returns the stored dynamic turn without legacy scoring writes", async () => {
|
|
const stored = {
|
|
...dynamicCase(),
|
|
scoring: {
|
|
answeredCount: 5,
|
|
candidateClusterRankings: [],
|
|
nextRound: null,
|
|
nextRoundQuestions: [],
|
|
raw: {},
|
|
},
|
|
};
|
|
const memory = memoryStore(stored);
|
|
const service = createBirthTimeJourneyService({ store: memory.store, engine: unusedJourneyEngine });
|
|
|
|
const resumed = await service.resume(ownerId, caseId);
|
|
|
|
assert.equal(resumed.journeyProtocol, "dynamic-choice-v2");
|
|
assert.deepEqual({
|
|
journeyProtocol: resumed.journeyProtocol,
|
|
turnVersion: resumed.turnVersion,
|
|
nextAction: resumed.nextAction,
|
|
progress: resumed.progress,
|
|
permissions: resumed.permissions,
|
|
}, stored.dynamicTurnState);
|
|
assert.equal(memory.legacyWrites(), 0);
|
|
});
|
|
|
|
test("resume upgrades an unfinished legacy case into the dynamic click-first flow", async () => {
|
|
const stored = legacyCase(true);
|
|
const memory = memoryStore(stored);
|
|
const service = createBirthTimeJourneyService({ store: memory.store, engine: unusedJourneyEngine });
|
|
|
|
const resumed = await service.resume(ownerId, caseId);
|
|
|
|
assert.equal(resumed.journeyProtocol, "dynamic-choice-v2");
|
|
assert.equal(resumed.nextAction.kind, "generate_dynamic_question");
|
|
assert.equal(resumed.turnVersion, stored.turnVersion);
|
|
assert.deepEqual(memory.savedCase()?.lifeEvents, stored.lifeEvents);
|
|
assert.deepEqual(resumed.lifeEvents, []);
|
|
assert.equal(memory.savedCase()?.journeyProtocol, "dynamic-choice-v2");
|
|
assert.equal(memory.legacyWrites(), 0);
|
|
});
|