glitchkit
Version:
A lightweight toolkit to create and manage expressive, structured, and reusable error types. Perfect for APIs, services, and glitchy adventures
80 lines (79 loc) • 4.21 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const GlitchKitBaseError_1 = __importDefault(require("../../baseGlitchKit/GlitchKitBaseError"));
const GlitchKitBaseFileSystemError_1 = __importDefault(require("../../baseGlitchKit/GlitchKitBaseFileSystemError"));
const GlitchKitDirectoryFoundError_1 = __importDefault(require("../GlitchKitDirectoryFoundError"));
const GlitchKitDirectoryNotFoundError_1 = __importDefault(require("../GlitchKitDirectoryNotFoundError"));
const GlitchKitDirectoryPermissionError_1 = __importDefault(require("../GlitchKitDirectoryPermissionError"));
const GlitchKitFileExistsError_1 = __importDefault(require("../GlitchKitFileExistsError"));
const GlitchKitFileNotFoundError_1 = __importDefault(require("../GlitchKitFileNotFoundError"));
const GlitchKitFilePermissionError_1 = __importDefault(require("../GlitchKitFilePermissionError"));
describe('HttpError Generics', () => {
const ErrorClasses = [
GlitchKitDirectoryFoundError_1.default,
GlitchKitDirectoryNotFoundError_1.default,
GlitchKitDirectoryPermissionError_1.default,
GlitchKitFileExistsError_1.default,
GlitchKitFileNotFoundError_1.default,
GlitchKitFilePermissionError_1.default,
];
const DUMMY_PATH = '/dummy/path';
const DUMMY_ERROR_CODE = 1001;
const DUMMY_ERROR_MESSAGE = 'Test Error message';
it('should be instance of correct BaseError', () => {
for (const ErrorClass of ErrorClasses) {
const errorInstance = new ErrorClass(DUMMY_ERROR_MESSAGE, DUMMY_ERROR_CODE);
expect(errorInstance).toBeInstanceOf(ErrorClass);
expect(ErrorClass.isInstance(errorInstance)).toBe(true);
expect(GlitchKitBaseError_1.default.isInstance(errorInstance)).toBe(true);
expect(GlitchKitBaseFileSystemError_1.default.isInstance(errorInstance)).toBe(true);
try {
errorInstance.raise();
}
catch (e) {
expect(e).toBeInstanceOf(ErrorClass);
}
}
});
it('should be instance of correct initialization', () => {
for (const ErrorClass of ErrorClasses) {
const errorInstance = new ErrorClass(DUMMY_ERROR_MESSAGE, DUMMY_ERROR_CODE);
expect(errorInstance.message).toBe(DUMMY_ERROR_MESSAGE);
expect(errorInstance.errorCode).toBe(DUMMY_ERROR_CODE);
const errorJson = errorInstance.toJSON();
expect(errorJson.message).toBe(DUMMY_ERROR_MESSAGE);
}
});
it('should assign collect attribute values 1', () => {
for (const ErrorClass of ErrorClasses) {
const errorInstance = new ErrorClass(DUMMY_ERROR_MESSAGE, DUMMY_ERROR_CODE);
errorInstance.path = DUMMY_PATH;
expect(errorInstance.path).toBe(DUMMY_PATH);
errorInstance.errorCode = DUMMY_ERROR_CODE;
expect(errorInstance.errorCode).toBe(DUMMY_ERROR_CODE);
errorInstance.durationMs = 500;
expect(errorInstance.durationMs).toBe(500);
expect(errorInstance.timestamp).toBeInstanceOf(Date);
const errorJson = errorInstance.toJSON();
expect(errorJson.message).toBe(DUMMY_ERROR_MESSAGE);
}
});
it('should assign collect attribute values 2', () => {
for (const ErrorClass of ErrorClasses) {
const errorInstance = new ErrorClass(DUMMY_ERROR_MESSAGE, DUMMY_ERROR_CODE);
errorInstance.withPath(DUMMY_PATH);
expect(errorInstance.path).toBe(DUMMY_PATH);
errorInstance.withErrorCode(DUMMY_ERROR_CODE);
expect(errorInstance.errorCode).toBe(DUMMY_ERROR_CODE);
errorInstance.withDurationMs(500);
expect(errorInstance.durationMs).toBe(500);
expect(errorInstance.timestamp).toBeInstanceOf(Date);
const errorJson = errorInstance.toJSON();
expect(errorJson.message).toBe(DUMMY_ERROR_MESSAGE);
}
});
});
// We recommend installing an extension to run jest tests.