From 4cc395bd73bb5b9a5194b30ff2b90e5b73698344 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maren=20S=C3=BCwer?= Date: Tue, 21 Aug 2018 16:21:41 +0200 Subject: [PATCH] add test for fetch failure --- scm-ui/src/permissions/modules/permissions.js | 2 +- .../src/permissions/modules/permissions.test.js | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/scm-ui/src/permissions/modules/permissions.js b/scm-ui/src/permissions/modules/permissions.js index 63ea6f44e5..3bf46394d5 100644 --- a/scm-ui/src/permissions/modules/permissions.js +++ b/scm-ui/src/permissions/modules/permissions.js @@ -13,7 +13,7 @@ export const FETCH_PERMISSIONS_FAILURE = `${FETCH_PERMISSIONS}_${types.FAILURE_S const REPOS_URL = "repositories"; const PERMISSIONS_URL = "permissions"; -// fetch repos +// fetch permissions export function fetchPermissions(namespace: string, name: string) { return function(dispatch: any) { diff --git a/scm-ui/src/permissions/modules/permissions.test.js b/scm-ui/src/permissions/modules/permissions.test.js index 65e4b6adfc..94e894453b 100644 --- a/scm-ui/src/permissions/modules/permissions.test.js +++ b/scm-ui/src/permissions/modules/permissions.test.js @@ -5,7 +5,8 @@ import fetchMock from "fetch-mock"; import { fetchPermissions, FETCH_PERMISSIONS_PENDING, - FETCH_PERMISSIONS_SUCCESS + FETCH_PERMISSIONS_SUCCESS, + FETCH_PERMISSIONS_FAILURE } from "./permissions"; import type { Permission, Permissions } from "../types/Permissions"; @@ -64,4 +65,18 @@ describe("permission fetch", () => { expect(store.getActions()).toEqual(expectedActions); }); }); + + it("should dispatch FETCH_PERMISSIONS_FAILURE, it the request fails", () => { + fetchMock.getOnce(REPOS_URL + "/s/b/permissions", { + status: 500 + }); + + const store = mockStore({}); + return store.dispatch(fetchPermissions("s", "b")).then(() => { + const actions = store.getActions(); + expect(actions[0].type).toEqual(FETCH_PERMISSIONS_PENDING); + expect(actions[1].type).toEqual(FETCH_PERMISSIONS_FAILURE); + expect(actions[1].payload).toBeDefined(); + }); + }); });