import { describe, expect, it } from "@suaveplan/testing/runner"; import { TEST_VITE_CODES, TestViteError } from "./error-codes.js"; describe("TEST_VITE_CODES", () => { it("every code is namespaced under TEST_VITE.", { timeout: 5000 }, () => { for (const code of Object.values(TEST_VITE_CODES)) { expect(code.startsWith("TEST_VITE.")).toBe(true); } }); it("TestViteError carries supplied code and details", { timeout: 5000, }, () => { const err = new TestViteError(TEST_VITE_CODES.INVALID_OPTIONS, "bad", { details: { foo: 1 }, }); expect(err.code).toBe(TEST_VITE_CODES.INVALID_OPTIONS); expect(err.details["foo"]).toBe(1); expect(err.name).toBe("TestViteError"); expect(err.message).toBe("bad"); }); it("TestViteError defaults details to empty object", { timeout: 5000, }, () => { const err = new TestViteError( TEST_VITE_CODES.PORT_EXHAUSTED, "no ports" ); expect(err.details).toEqual({}); }); it("TestViteError accepts cause", { timeout: 5000 }, () => { const cause = new Error("upstream"); const err = new TestViteError( TEST_VITE_CODES.MISSING_ENTRY, "no file", { cause } ); expect(err.cause).toBe(cause); }); });