feat: add Condo owner desk frontend and backend
This commit is contained in:
34
backend/tests/errors.test.ts
Normal file
34
backend/tests/errors.test.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
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);
|
||||
});
|
||||
Reference in New Issue
Block a user