diff --git a/jest/jestEnvironment.js b/jest/jestEnvironment.js index aeb87e8..d293d5d 100644 --- a/jest/jestEnvironment.js +++ b/jest/jestEnvironment.js @@ -1 +1 @@ -jest.requireActual('babel/polyfill'); +require.requireActual('babel/polyfill'); diff --git a/jest/setup.ts b/jest/setup.ts index 65b2ff7..293e0ef 100644 --- a/jest/setup.ts +++ b/jest/setup.ts @@ -7,13 +7,14 @@ import { configure } from 'enzyme'; import Adapter from 'enzyme-adapter-react-16'; import { GlobalWithFetchMock } from 'jest-fetch-mock'; +// @ts-ignore : Only a void function can be called with the 'new' keyword configure({ adapter: new Adapter() }); // @ts-ignore : Property '__APP_VERSION__' does not exist on type 'Global'. global.__APP_VERSION__ = '1.0.0'; // @ts-ignore : Property '__VERDACCIO_BASENAME_UI_OPTIONS' does not exist on type 'Global'. -global.__VERDACCIO_BASENAME_UI_OPTIONS = { base: 'http://localhost' }; -// @ts-ignore : Property 'VERDACCIO_API_URL' does not exist on type 'Global'. +global.__VERDACCIO_BASENAME_UI_OPTIONS = {}; + global.VERDACCIO_API_URL = 'https://verdaccio.tld'; const customGlobal: GlobalWithFetchMock = global as GlobalWithFetchMock; diff --git a/src/utils/url.test.ts b/src/utils/url.test.ts index b98fb82..34e42bd 100644 --- a/src/utils/url.test.ts +++ b/src/utils/url.test.ts @@ -17,18 +17,14 @@ describe('utils', () => { expect(isEmail('')).toBeFalsy(); }); - test('getRegistryURL() - should not change when location change', () => { - expect(getRegistryURL()).toBe('http://localhost'); + test('getRegistryURL() - should keep slash if location is a sub directory', () => { history.pushState({}, 'page title', '/-/web/detail'); - expect(getRegistryURL()).toBe('http://localhost'); + expect(getRegistryURL()).toBe('http://localhost/-/web/detail'); history.pushState({}, 'page title', '/'); }); - test('getRegistryURL() - should change when UI options change', () => { + test('getRegistryURL() - should not add slash if location is not a sub directory', () => { expect(getRegistryURL()).toBe('http://localhost'); - window.__VERDACCIO_BASENAME_UI_OPTIONS.base = 'http://localhost/test'; - expect(getRegistryURL()).toBe('http://localhost/test'); - window.__VERDACCIO_BASENAME_UI_OPTIONS.base = 'http://localhost'; }); }); diff --git a/src/utils/url.ts b/src/utils/url.ts index 021d034..41d2caf 100644 --- a/src/utils/url.ts +++ b/src/utils/url.ts @@ -15,7 +15,8 @@ export function isEmail(email: string): boolean { } export function getRegistryURL(): string { - return window.__VERDACCIO_BASENAME_UI_OPTIONS.base; + // Don't add slash if it's not a sub directory + return `${location.origin}${location.pathname === '/' ? '' : location.pathname}`; } export function extractFileName(url: string): string {