import { expect, it } from "vitest"; import { ApiErrorCode, apiErrorCode, isApiErrorCode, isBrokerageAccessLoss, } from "./problem-details"; it("matches known codes and preserves unknown wire codes for fallback handling", () => { expect( isApiErrorCode( apiErrorCode({ code: "UNAUTHORIZED" }), ApiErrorCode.Unauthorized, ), ).toBe(true); const unknownCode = apiErrorCode({ code: "FUTURE_PROVIDER_ERROR" }); expect(unknownCode).toBe("FUTURE_PROVIDER_ERROR"); expect(isApiErrorCode(unknownCode, ApiErrorCode.Unauthorized)).toBe(false); expect(isApiErrorCode(undefined, ApiErrorCode.Unauthorized)).toBe(false); expect(apiErrorCode(null)).toBeUndefined(); expect(apiErrorCode({})).toBeUndefined(); }); it("separates brokerage access loss from UNAUTHORIZED, temporary and unknown codes", () => { for (const code of ["INVALID_TBANK_TOKEN", "NOT_FOUND", "TBANK_NOT_CONNECTED"]) expect(isBrokerageAccessLoss(code)).toBe(true); for (const code of ["UNAUTHORIZED", "TBANK_UNAVAILABLE", "FUTURE_PROVIDER_ERROR", undefined]) expect(isBrokerageAccessLoss(code)).toBe(false); });