Files
Jyotisha/frontend/tests/conversational-rectification-domain-migration.test.ts
T
2026-07-22 00:55:03 +08:00

33 lines
1.1 KiB
TypeScript

import assert from "node:assert/strict";
import { readFileSync } from "node:fs";
import test from "node:test";
const migration = readFileSync(
new URL(
"../supabase/migrations/20260721150000_align_conversational_finance_domain.sql",
import.meta.url,
),
"utf8",
);
test("durable rectification SQL accepts every application evidence domain", () => {
for (const validator of [
"conversational_rectification_valid_evidence_request(jsonb)",
"conversational_rectification_valid_life_event_evidence(jsonb)",
"conversational_rectification_valid_private_candidate(jsonb)",
]) {
assert.match(migration, new RegExp(validator.replace(/[()]/g, "\\$&")));
}
assert.match(migration, /'education', 'finance', 'relocation'/);
assert.match(migration, /birth_time_rectification_event_evidence_domain_check/);
});
test("durable public recap accepts and validates its optional domain", () => {
assert.match(
migration,
/array\['id', 'summary', 'dateLabel', 'domain', 'isCorrection'\]/,
);
assert.match(migration, /item \? 'domain'/);
assert.match(migration, /item ->> 'domain' not in/);
});