diff --git a/scm-ui-components/packages/ui-components/src/Paginator.test.js b/scm-ui-components/packages/ui-components/src/Paginator.test.js index f3ac840f67..74f684e6f6 100644 --- a/scm-ui-components/packages/ui-components/src/Paginator.test.js +++ b/scm-ui-components/packages/ui-components/src/Paginator.test.js @@ -1,6 +1,6 @@ // @flow import React from "react"; -import { mount, shallow } from "enzyme"; +import {mount, shallow} from "enzyme"; import "./tests/enzyme"; import "./tests/i18n"; import ReactRouterEnzymeContext from "react-router-enzyme-context"; @@ -18,7 +18,8 @@ describe("paginator rendering tests", () => { const collection = { page: 10, pageTotal: 20, - _links: {} + _links: {}, + _embedded: {} }; const paginator = shallow( @@ -40,7 +41,8 @@ describe("paginator rendering tests", () => { first: dummyLink, next: dummyLink, last: dummyLink - } + }, + _embedded: {} }; const paginator = shallow( @@ -79,7 +81,8 @@ describe("paginator rendering tests", () => { prev: dummyLink, next: dummyLink, last: dummyLink - } + }, + _embedded: {} }; const paginator = shallow( @@ -121,7 +124,8 @@ describe("paginator rendering tests", () => { _links: { first: dummyLink, prev: dummyLink - } + }, + _embedded: {} }; const paginator = shallow( @@ -160,7 +164,8 @@ describe("paginator rendering tests", () => { prev: dummyLink, next: dummyLink, last: dummyLink - } + }, + _embedded: {} }; const paginator = shallow( @@ -204,7 +209,8 @@ describe("paginator rendering tests", () => { prev: dummyLink, next: dummyLink, last: dummyLink - } + }, + _embedded: {} }; const paginator = shallow( @@ -256,7 +262,8 @@ describe("paginator rendering tests", () => { }, next: dummyLink, last: dummyLink - } + }, + _embedded: {} }; let urlToOpen; diff --git a/scm-ui-components/packages/ui-components/src/apiclient.js b/scm-ui-components/packages/ui-components/src/apiclient.js index 57e713546c..f51b96de43 100644 --- a/scm-ui-components/packages/ui-components/src/apiclient.js +++ b/scm-ui-components/packages/ui-components/src/apiclient.js @@ -11,38 +11,32 @@ const fetchOptions: RequestOptions = { } }; -// TODO: dedup function handleStatusCode(response: Response) { if (!response.ok) { - if (response.status === 401) { - return response.json().then( - json => { - throw Error(json.message); - }, - () => { - throw UNAUTHORIZED_ERROR; - } - ); + switch (response.status) { + case 401: + return throwErrorWithMessage(response, UNAUTHORIZED_ERROR.message); + case 404: + return throwErrorWithMessage(response, NOT_FOUND_ERROR.message); + default: + return throwErrorWithMessage(response, "server returned status code " + response.status); } - if (response.status === 404) { - return response.json().then( - json => { - throw Error(json.message); - }, - () => { - throw NOT_FOUND_ERROR; - } - ); - } - return response.json().then(json => { - throw Error(json.message); - }, () => { - throw new Error("server returned status code " + response.status); - }); + } return response; } +function throwErrorWithMessage(response: Response, message: string) { + return response.json().then( + json => { + throw Error(json.message); + }, + () => { + throw Error(message); + } + ); +} + export function createUrl(url: string) { if (url.includes("://")) { return url;