From ed077f704fbb75d25f477bf4b08b6d8695575a72 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Thu, 12 Jul 2018 08:22:27 +0200 Subject: [PATCH] fix bug in createUrl of apiclient and added tests --- scm-ui/src/apiclient.js | 8 ++++---- scm-ui/src/apiclient.test.js | 13 +++++++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 scm-ui/src/apiclient.test.js 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"); +});