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