diff --git a/scm-ui/src/apiclient.js b/scm-ui/src/apiclient.js index f8fd7f8f3f..7326e78820 100644 --- a/scm-ui/src/apiclient.js +++ b/scm-ui/src/apiclient.js @@ -26,15 +26,15 @@ function handleStatusCode(response: Response) { return response; } -function createUrl(url: string) { +export function createUrl(url: string) { if (url.indexOf("://") > 0) { return url; } - let urlWithEndingSlash = url; + let urlWithStartingSlash = url; if (url.indexOf("/") !== 0) { - urlWithEndingSlash += "/"; + urlWithStartingSlash = "/" + urlWithStartingSlash; } - return `${apiUrl}/api/rest/v2${urlWithEndingSlash}`; + return `${apiUrl}/api/rest/v2${urlWithStartingSlash}`; } class ApiClient { diff --git a/scm-ui/src/apiclient.test.js b/scm-ui/src/apiclient.test.js new file mode 100644 index 0000000000..2a185196d5 --- /dev/null +++ b/scm-ui/src/apiclient.test.js @@ -0,0 +1,13 @@ +// @flow +import { createUrl } from "./apiclient"; + +test("create url, should not change absolute urls", () => { + expect(createUrl("https://www.scm-manager.org")).toBe( + "https://www.scm-manager.org" + ); +}); + +test("create url, should add prefix for api", () => { + expect(createUrl("/users")).toBe("/scm/api/rest/v2/users"); + expect(createUrl("users")).toBe("/scm/api/rest/v2/users"); +});