rx-player
Version:
Canal+ HTML5 Video Player
54 lines (48 loc) • 1.64 kB
text/typescript
import { describe, beforeEach, it, expect, vi, afterEach } from "vitest";
import formatError from "../format_error";
import OtherError from "../other_error";
const mocks = vi.hoisted(() => {
return {
isKnownError: vi.fn(),
};
});
vi.mock("../is_known_error", () => {
return {
default: mocks.isKnownError,
};
});
describe("errors - formatError", () => {
beforeEach(() => {
vi.resetModules();
});
afterEach(() => {
mocks.isKnownError.mockReset();
});
it("should just return the error if it is a Custom Error", () => {
mocks.isKnownError.mockImplementation(() => true);
const error1 = new Error("Aaaaaa");
expect(formatError(error1, { defaultCode: "NONE", defaultReason: "a" })).toBe(error1);
});
it("should stringify error if it is an Error but not a Custom Error", () => {
mocks.isKnownError.mockImplementation(() => false);
const error1 = new Error("Abcdef");
const formattedError = formatError(error1, {
defaultCode: "NONE",
defaultReason: "a",
});
expect(formattedError).toBeInstanceOf(OtherError);
expect(formattedError.message).toBe("NONE: Error: Abcdef");
expect(formattedError.code).toBe("NONE");
});
it("should stringify error if it is an Error but not a Custom Error", () => {
mocks.isKnownError.mockImplementation(() => false);
const error1 = {};
const formattedError = formatError(error1, {
defaultCode: "NONE",
defaultReason: "a",
});
expect(formattedError).toBeInstanceOf(OtherError);
expect(formattedError.message).toBe("NONE: a");
expect(formattedError.code).toBe("NONE");
});
});