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");