import { describe, expect, it } from "vitest"; import { APIError, AuthenticationError, DifyError, FileUploadError, NetworkError, RateLimitError, TimeoutError, ValidationError, } from "./dify-error"; describe("Dify errors", () => { it("sets base error fields", () => { const err = new DifyError("base", { statusCode: 400, responseBody: { message: "bad" }, requestId: "req", retryAfter: 1, }); expect(err.name).toBe("DifyError"); expect(err.statusCode).toBe(400); expect(err.responseBody).toEqual({ message: "bad" }); expect(err.requestId).toBe("req"); expect(err.retryAfter).toBe(1); }); it("creates specific error types", () => { expect(new APIError("api").name).toBe("APIError"); expect(new AuthenticationError("auth").name).toBe("AuthenticationError"); expect(new RateLimitError("rate").name).toBe("RateLimitError"); expect(new ValidationError("val").name).toBe("ValidationError"); expect(new NetworkError("net").name).toBe("NetworkError"); expect(new TimeoutError("timeout").name).toBe("TimeoutError"); expect(new FileUploadError("upload").name).toBe("FileUploadError"); }); });