Files
growqr-backend/scripts/count-fallback.test.ts
2026-07-13 20:14:14 +00:00

25 lines
998 B
TypeScript

import assert from "node:assert/strict";
import { canonicalGrowEventEnvelope } from "../src/events/record-grow-event.js";
import { normalizeGrowEvent } from "../src/events/normalize.js";
/** Bare completions stay bare. QScore may aggregate them as real events, but
* the backend must never invent session_count/scenario_count or a score. */
for (const [source, type] of [
["interview-service", "interview.session.completed"],
["roleplay-service", "roleplay.scenario.completed"],
] as const) {
const event = canonicalGrowEventEnvelope(normalizeGrowEvent({
id: `event-${type}`,
source,
type,
category: "service",
occurredAt: "2026-07-14T00:00:00.000Z",
payload: {},
}), "real-user");
assert.deepEqual(event.payload, {});
assert.equal("score" in event.payload as object, false);
assert.equal("session_count" in event.payload as object, false);
assert.equal("scenario_count" in event.payload as object, false);
}
console.log("no count fallback tests passed");