Files
wyndham-Condon/backend/tests/errors.test.ts
2026-08-02 13:33:13 +08:00

35 lines
1.1 KiB
TypeScript

import assert from "node:assert/strict";
import test from "node:test";
import { mapDatabaseError } from "../src/errors.js";
test("database business errors map to stable API responses", () => {
const insufficient = mapDatabaseError({
code: "P0001",
message: "CONDON_INSUFFICIENT_BALANCE"
});
assert.equal(insufficient.statusCode, 422);
assert.equal(insufficient.code, "INSUFFICIENT_BALANCE");
const duplicate = mapDatabaseError({
code: "23505",
message: "CONDON_CONFIRMATION_NO_EXISTS"
});
assert.equal(duplicate.statusCode, 409);
assert.equal(duplicate.code, "CONFLICT");
const invalid = mapDatabaseError({
code: "22023",
message: "CONDON_CROSS_YEAR_STAY_NOT_SUPPORTED"
});
assert.equal(invalid.statusCode, 400);
assert.equal(invalid.code, "BUSINESS_RULE_VIOLATION");
const unknown = mapDatabaseError({
code: "XX000",
message: "internal database details"
});
assert.equal(unknown.statusCode, 500);
assert.equal(unknown.message, "An internal error occurred");
assert.equal(unknown.message.includes("database details"), false);
});