|
@@ -2,6 +2,31 @@ import { describe, expect, test } from "bun:test"
|
|
|
import { errorData, errorFormat, errorMessage } from "../../src/util/error"
|
|
import { errorData, errorFormat, errorMessage } from "../../src/util/error"
|
|
|
|
|
|
|
|
describe("util.error", () => {
|
|
describe("util.error", () => {
|
|
|
|
|
+ test("keeps the server error reference available for log correlation", () => {
|
|
|
|
|
+ const error = {
|
|
|
|
|
+ name: "UnknownError",
|
|
|
|
|
+ data: {
|
|
|
|
|
+ message: "Unexpected server error. Check server logs for details.",
|
|
|
|
|
+ ref: "err_1234abcd",
|
|
|
|
|
+ },
|
|
|
|
|
+ }
|
|
|
|
|
+ expect(errorMessage(error)).toBe(
|
|
|
|
|
+ "Unexpected server error. Check server logs for details.\nError reference: err_1234abcd",
|
|
|
|
|
+ )
|
|
|
|
|
+ expect(errorMessage(new Error("HTTP request failed", { cause: { body: error } }))).toBe(errorMessage(error))
|
|
|
|
|
+ expect(errorData(error).message).toContain("err_1234abcd")
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ test("explains provider configuration errors instead of displaying an opaque object", () => {
|
|
|
|
|
+ expect(
|
|
|
|
|
+ errorMessage({
|
|
|
|
|
+ name: "ProviderModelNotFoundError",
|
|
|
|
|
+ data: { providerID: "test", modelID: "missing", suggestions: ["available"] },
|
|
|
|
|
+ }),
|
|
|
|
|
+ ).toContain("Did you mean: available")
|
|
|
|
|
+ expect(errorMessage({ name: "UnknownError", data: { message: "failure" } })).toBe("failure")
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
test("formats native Error instances", () => {
|
|
test("formats native Error instances", () => {
|
|
|
const err = new Error("boom")
|
|
const err = new Error("boom")
|
|
|
expect(errorMessage(err)).toBe("boom")
|
|
expect(errorMessage(err)).toBe("boom")
|