opencode/packages/tui/test/util/error.test.ts
opencode-agent[bot] 70393a1d18
Remove unused error data serializer (#39960)
Co-authored-by: Kit Langton <kit.langton@gmail.com>
2026-07-31 20:31:22 -04:00

36 lines
1.1 KiB
TypeScript

import { describe, expect, test } from "bun:test"
import { errorFormat, errorMessage } from "../../src/util/error"
describe("util.error", () => {
test("formats native Error instances", () => {
const err = new Error("boom")
expect(errorMessage(err)).toBe("boom")
expect(errorFormat(err)).toContain("boom")
})
test("extracts message from record-like values", () => {
const err = { message: "bad input", code: "E_BAD" }
expect(errorMessage(err)).toBe("bad input")
})
test("never returns bare {} for opaque object errors", () => {
expect(errorFormat({})).not.toBe("{}")
expect(errorFormat({})).toContain("no message")
class OpaqueError {}
const opaque = new OpaqueError()
Object.defineProperty(opaque, "secret", { value: "hidden", enumerable: false })
expect(errorFormat(opaque)).not.toBe("{}")
expect(errorFormat(opaque)).toContain("OpaqueError")
})
test("handles opaque throwables with custom toString", () => {
const err = {
toString() {
return "ResolveMessage: Cannot resolve module"
},
}
expect(errorMessage(err)).toBe("ResolveMessage: Cannot resolve module")
})
})