summaryrefslogtreecommitdiff
path: root/app/services/api/api-problem.test.ts
diff options
context:
space:
mode:
authorThomas F. K. Jorna <[email protected]>2021-07-14 15:10:31 +0200
committerThomas F. K. Jorna <[email protected]>2021-07-14 15:10:31 +0200
commite5021187e96b78b53203bd95d08d6818aea47d17 (patch)
tree37ec45d00eb963db53cd4bb4f04a770414b351cc /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.ts72
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()
+})