43 lines
1.5 KiB
TypeScript
43 lines
1.5 KiB
TypeScript
import { describe, expect, it } from "@suaveplan/testing/runner";
|
|
import {
|
|
OPENAPI_UI_SCALAR_CODES,
|
|
OpenapiUiScalarError,
|
|
} from "./error-codes.js";
|
|
|
|
describe("OPENAPI_UI_SCALAR codes", () => {
|
|
it("exposes the three stable codes", { timeout: 5000 }, () => {
|
|
expect(OPENAPI_UI_SCALAR_CODES.ASSETS_MISSING).toBe(
|
|
"OPENAPI_UI_SCALAR.ASSETS_MISSING"
|
|
);
|
|
expect(OPENAPI_UI_SCALAR_CODES.INVALID_OPTIONS).toBe(
|
|
"OPENAPI_UI_SCALAR.INVALID_OPTIONS"
|
|
);
|
|
expect(OPENAPI_UI_SCALAR_CODES.ASSET_NOT_REGISTERED).toBe(
|
|
"OPENAPI_UI_SCALAR.ASSET_NOT_REGISTERED"
|
|
);
|
|
});
|
|
|
|
it("error carries the code in both fields", { timeout: 5000 }, () => {
|
|
const err = new OpenapiUiScalarError(
|
|
OPENAPI_UI_SCALAR_CODES.ASSETS_MISSING,
|
|
"missing",
|
|
{ context: { mode: "bundled" } }
|
|
);
|
|
expect(err).toBeInstanceOf(OpenapiUiScalarError);
|
|
expect(err.code).toBe(OPENAPI_UI_SCALAR_CODES.ASSETS_MISSING);
|
|
expect(err.scalarCode).toBe(OPENAPI_UI_SCALAR_CODES.ASSETS_MISSING);
|
|
expect(err.name).toBe("OpenapiUiScalarError");
|
|
expect(err.context?.mode).toBe("bundled");
|
|
});
|
|
|
|
it("supports the cause chain on the shared base", { timeout: 5000 }, () => {
|
|
const root = new Error("root");
|
|
const err = new OpenapiUiScalarError(
|
|
OPENAPI_UI_SCALAR_CODES.INVALID_OPTIONS,
|
|
"boom",
|
|
{ cause: root }
|
|
);
|
|
expect(err.cause).toBe(root);
|
|
});
|
|
});
|