Files
Jyotisha/frontend/tests/local-postgres-query-value.test.ts
T
Jesse_Chen e87c58d6e4 fix(report): persist longform appendix on self-hosted upsert (BUG-576)
Engine calls already returned markdown; the worker failed because local postgres upsert required onConflict and the appendix write omitted it.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-07 14:19:21 +08:00

31 lines
1.5 KiB
TypeScript

import assert from "node:assert/strict";
import test from "node:test";
import { queryValue, upsertConflictColumns } from "../src/lib/db/local-postgres-client-core.ts";
test("queryValue keeps calendar dates in local civil form", () => {
assert.equal(queryValue("date", new Date(2026, 7, 22)), "2026-08-22");
});
test("queryValue projects timestamptz and timestamp Date values as ISO strings", () => {
const instant = new Date("2026-08-22T12:34:56.000Z");
assert.equal(queryValue("timestamptz", instant), "2026-08-22T12:34:56.000Z");
assert.equal(queryValue("timestamp", instant), "2026-08-22T12:34:56.000Z");
assert.equal(queryValue("timestamp with time zone", instant), "2026-08-22T12:34:56.000Z");
assert.equal(queryValue("timestamp without time zone", instant), "2026-08-22T12:34:56.000Z");
});
test("queryValue leaves non-date values unchanged", () => {
assert.equal(queryValue("timestamptz", "2026-08-22T12:34:56.000Z"), "2026-08-22T12:34:56.000Z");
assert.equal(queryValue("text", "hello"), "hello");
const leftover = new Date("2026-08-22T12:34:56.000Z");
assert.equal(queryValue("unknown", leftover), leftover);
});
test("upsert without onConflict does not throw before execute and defaults to an empty conflict list", () => {
assert.deepEqual(upsertConflictColumns(), []);
assert.deepEqual(upsertConflictColumns({}), []);
assert.deepEqual(upsertConflictColumns({ onConflict: "report_id" }), ["report_id"]);
assert.deepEqual(upsertConflictColumns({ onConflict: "user_id, session_id" }), ["user_id", "session_id"]);
});