From 0aca569c31595f7cae428efca5f85fcf1ef78ddb Mon Sep 17 00:00:00 2001 From: Fred Boniface Date: Thu, 13 Mar 2025 20:24:54 +0000 Subject: [PATCH] Add tests for custom error classes --- src/errors.test.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/errors.test.ts diff --git a/src/errors.test.ts b/src/errors.test.ts new file mode 100644 index 0000000..f9e3154 --- /dev/null +++ b/src/errors.test.ts @@ -0,0 +1,32 @@ +import { ApiError, ValidationError, NetworkError } from "./errors"; + +describe("Custom Error Class Tests", () => { + test("ApiError should store message, statusCode and responseBody", () => { + const error = new ApiError("API Request failed", 404, "Not Found"); + + expect(error).toBeInstanceOf(ApiError); + expect(error).toBeInstanceOf(Error); + expect(error.name).toBe("ApiError"); + expect(error.message).toBe("API Request failed"); + expect(error.statusCode).toBe(404); + expect(error.responseBody).toBe("Not Found"); + }) + + test("ValidationError should store message", () => { + const error = new ValidationError("Invalid input"); + + expect(error).toBeInstanceOf(ValidationError); + expect(error).toBeInstanceOf(Error); + expect(error.name).toBe("ValidationError"); + expect(error.message).toBe("Invalid input"); + }) + + test("NetworkError should store message", () => { + const error = new NetworkError("Network Unreachable"); + + expect(error).toBeInstanceOf(NetworkError); + expect(error).toBeInstanceOf(Error); + expect(error.name).toBe("NetworkError"); + expect(error.message).toBe("Network Unreachable"); + }) +}) \ No newline at end of file