import { describe, it, expect } from "vitest";
import { classifyError } from "./error-handler.js";
describe("classifyError", () => {
it("classifies credential errors as auth", () => {
const result = classifyError(new Error("Invalid credentials"));
expect(result.category).toBe("auth");
expect(result.userMessage).toContain("Authentication");
});
it("classifies AccessDenied as auth", () => {
const result = classifyError(
new Error("AccessDenied: User is not authorized")
);
expect(result.category).toBe("auth");
});
it("classifies throttling errors", () => {
const result = classifyError(new Error("Rate exceeded"));
expect(result.category).toBe("throttle");
expect(result.userMessage).toContain("rate limit");
});
it("classifies validation errors", () => {
const result = classifyError(
new Error("ValidationException: Invalid parameter")
);
expect(result.category).toBe("validation");
});
it("classifies not found errors", () => {
const result = classifyError(new Error("Resource not found"));
expect(result.category).toBe("not_found");
});
it("returns unknown for generic errors", () => {
const result = classifyError(new Error("Something went wrong"));
expect(result.category).toBe("unknown");
expect(result.userMessage).toContain("error occurred");
});
});