25 lines
998 B
TypeScript
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");
|