43 lines
1.4 KiB
TypeScript
43 lines
1.4 KiB
TypeScript
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);
|
|
});
|
|
});
|