35 lines
1.0 KiB
TypeScript
35 lines
1.0 KiB
TypeScript
import { describe, expect, test } from "bun:test";
|
|
import AppError from "./app-error";
|
|
import safeErrorMessage from "./safe-error-message";
|
|
|
|
describe("safeErrorMessage", () => {
|
|
test("returns the message of an AppError", () => {
|
|
expect(
|
|
safeErrorMessage({ error: new AppError("Please try again") }),
|
|
).toBe("Please try again");
|
|
});
|
|
|
|
test("hides the message of a plain Error", () => {
|
|
expect(
|
|
safeErrorMessage({
|
|
error: new Error("SQLITE_CONSTRAINT: users.email"),
|
|
}),
|
|
).toBe("Something went wrong. Please try again.");
|
|
});
|
|
|
|
test("hides non-Error values", () => {
|
|
expect(safeErrorMessage({ error: "boom" })).toBe(
|
|
"Something went wrong. Please try again.",
|
|
);
|
|
});
|
|
|
|
test("supports a custom fallback", () => {
|
|
expect(
|
|
safeErrorMessage({
|
|
error: new Error("internal"),
|
|
fallback: "Request failed",
|
|
}),
|
|
).toBe("Request failed");
|
|
});
|
|
});
|