@ingeze/api-error
Version:
A TypeScript library for handling HTTP errors in Express, NestJS, and Fastify APIs.
102 lines (101 loc) • 3.66 kB
JavaScript
import { ErrorHandler } from "src/errors/error-handler";
import {
ForbiddenError,
ForbiddenUserError,
ForbiddenEmailError,
ForbiddenProductError,
ForbiddenPostError,
ForbiddenCommentError,
ForbiddenCategoryError,
ForbiddenFileError,
ForbiddenImageError,
ForbiddenAddressError
} from "src/errors/forbidden-error";
describe("ForbiddenError", () => {
it("should be instance of ErrorHandler with default message", () => {
const error = new ForbiddenError();
expect(error).toBeInstanceOf(ErrorHandler);
expect(error.statusCode).toBe(403);
expect(error.type).toBe("FORBIDDEN");
expect(error.message).toBe("Forbidden");
});
it("should accept custom message and details", () => {
const details = { field: "user" };
const error = new ForbiddenError("Custom forbidden", "FORBIDDEN", details);
expect(error.message).toBe("Custom forbidden");
expect(error.details).toEqual(details);
});
});
describe("ForbiddenUserError", () => {
it("should have correct type and message", () => {
const error = new ForbiddenUserError();
expect(error.type).toBe("FORBIDDEN_USER");
expect(error.message).toBe("User access forbidden");
expect(error.statusCode).toBe(403);
});
});
describe("ForbiddenEmailError", () => {
it("should have correct type and message", () => {
const error = new ForbiddenEmailError();
expect(error.type).toBe("FORBIDDEN_EMAIL");
expect(error.message).toBe("Email access forbidden");
expect(error.statusCode).toBe(403);
});
});
describe("ForbiddenProductError", () => {
it("should have correct type and message", () => {
const error = new ForbiddenProductError();
expect(error.type).toBe("FORBIDDEN_PRODUCT");
expect(error.message).toBe("Product access forbidden");
expect(error.statusCode).toBe(403);
});
});
describe("ForbiddenPostError", () => {
it("should have correct type and message", () => {
const error = new ForbiddenPostError();
expect(error.type).toBe("FORBIDDEN_POST");
expect(error.message).toBe("Post access forbidden");
expect(error.statusCode).toBe(403);
});
});
describe("ForbiddenCommentError", () => {
it("should have correct type and message", () => {
const error = new ForbiddenCommentError();
expect(error.type).toBe("FORBIDDEN_COMMENT");
expect(error.message).toBe("Comment access forbidden");
expect(error.statusCode).toBe(403);
});
});
describe("ForbiddenCategoryError", () => {
it("should have correct type and message", () => {
const error = new ForbiddenCategoryError();
expect(error.type).toBe("FORBIDDEN_CATEGORY");
expect(error.message).toBe("Category access forbidden");
expect(error.statusCode).toBe(403);
});
});
describe("ForbiddenFileError", () => {
it("should have correct type and message", () => {
const error = new ForbiddenFileError();
expect(error.type).toBe("FORBIDDEN_FILE");
expect(error.message).toBe("File access forbidden");
expect(error.statusCode).toBe(403);
});
});
describe("ForbiddenImageError", () => {
it("should have correct type and message", () => {
const error = new ForbiddenImageError();
expect(error.type).toBe("FORBIDDEN_IMAGE");
expect(error.message).toBe("Image access forbidden");
expect(error.statusCode).toBe(403);
});
});
describe("ForbiddenAddressError", () => {
it("should have correct type and message", () => {
const error = new ForbiddenAddressError();
expect(error.type).toBe("FORBIDDEN_ADDRESS");
expect(error.message).toBe("Address access forbidden");
expect(error.statusCode).toBe(403);
});
});
//# sourceMappingURL=forbidden-error.test.js.map