diff options
author | Thomas F. K. Jorna <[email protected]> | 2021-07-14 15:10:31 +0200 |
---|---|---|
committer | Thomas F. K. Jorna <[email protected]> | 2021-07-14 15:10:31 +0200 |
commit | e5021187e96b78b53203bd95d08d6818aea47d17 (patch) | |
tree | 37ec45d00eb963db53cd4bb4f04a770414b351cc /app/services/api/api-problem.test.ts |
New Ignite 7.0.6 app
Diffstat (limited to 'app/services/api/api-problem.test.ts')
-rw-r--r-- | app/services/api/api-problem.test.ts | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/app/services/api/api-problem.test.ts b/app/services/api/api-problem.test.ts new file mode 100644 index 0000000..ccd35c9 --- /dev/null +++ b/app/services/api/api-problem.test.ts @@ -0,0 +1,72 @@ +import { getGeneralApiProblem } from "./api-problem" +import { ApiErrorResponse } from "apisauce" + +test("handles connection errors", () => { + expect(getGeneralApiProblem({ problem: "CONNECTION_ERROR" } as ApiErrorResponse<null>)).toEqual({ + kind: "cannot-connect", + temporary: true, + }) +}) + +test("handles network errors", () => { + expect(getGeneralApiProblem({ problem: "NETWORK_ERROR" } as ApiErrorResponse<null>)).toEqual({ + kind: "cannot-connect", + temporary: true, + }) +}) + +test("handles timeouts", () => { + expect(getGeneralApiProblem({ problem: "TIMEOUT_ERROR" } as ApiErrorResponse<null>)).toEqual({ + kind: "timeout", + temporary: true, + }) +}) + +test("handles server errors", () => { + expect(getGeneralApiProblem({ problem: "SERVER_ERROR" } as ApiErrorResponse<null>)).toEqual({ + kind: "server", + }) +}) + +test("handles unknown errors", () => { + expect(getGeneralApiProblem({ problem: "UNKNOWN_ERROR" } as ApiErrorResponse<null>)).toEqual({ + kind: "unknown", + temporary: true, + }) +}) + +test("handles unauthorized errors", () => { + expect( + getGeneralApiProblem({ problem: "CLIENT_ERROR", status: 401 } as ApiErrorResponse<null>), + ).toEqual({ + kind: "unauthorized", + }) +}) + +test("handles forbidden errors", () => { + expect( + getGeneralApiProblem({ problem: "CLIENT_ERROR", status: 403 } as ApiErrorResponse<null>), + ).toEqual({ + kind: "forbidden", + }) +}) + +test("handles not-found errors", () => { + expect( + getGeneralApiProblem({ problem: "CLIENT_ERROR", status: 404 } as ApiErrorResponse<null>), + ).toEqual({ + kind: "not-found", + }) +}) + +test("handles other client errors", () => { + expect( + getGeneralApiProblem({ problem: "CLIENT_ERROR", status: 418 } as ApiErrorResponse<null>), + ).toEqual({ + kind: "rejected", + }) +}) + +test("handles cancellation errors", () => { + expect(getGeneralApiProblem({ problem: "CANCEL_ERROR" } as ApiErrorResponse<null>)).toBeNull() +}) |