31 lines
1.2 KiB
TypeScript
31 lines
1.2 KiB
TypeScript
import assert from "node:assert/strict";
|
|
import { canonicalGrowEventEnvelope } from "../src/events/record-grow-event.js";
|
|
import { normalizeGrowEvent } from "../src/events/normalize.js";
|
|
|
|
/** Every service family is forwarded as a canonical event with unchanged real
|
|
* payload. Extraction and signal validation now run only in QScore. */
|
|
const cases = [
|
|
["resume-builder", "resume.analysis.completed", { analysis: { score_breakdown: [{ category: "ATS Compatibility", score: 75 }] } }],
|
|
["qscore-service", "qscore.signal.projected", { score: 65 }],
|
|
["social-branding-service", "brand.profile.updated", { profile: { headline: "Real headline" } }],
|
|
["unknown-service", "service.completed", {}],
|
|
["matchmaking-v2", "matchmaking.match.applied", { applications_submitted: 3 }],
|
|
] as const;
|
|
|
|
for (const [source, type, payload] of cases) {
|
|
const canonical = canonicalGrowEventEnvelope(normalizeGrowEvent({
|
|
id: `event-${type}`,
|
|
userId: "real-user",
|
|
source,
|
|
type,
|
|
category: "service",
|
|
occurredAt: "2026-07-14T00:00:00.000Z",
|
|
payload,
|
|
}), "real-user");
|
|
assert.equal(canonical.source, source);
|
|
assert.equal(canonical.type, type);
|
|
assert.deepEqual(canonical.payload, payload);
|
|
}
|
|
|
|
console.log("service raw-ingest forwarding tests passed");
|