X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/bedfc199257daf616753ddfb45f1e179e70dc634..87184cd1febea084a96e87d2b94028b6751d4418:/src/common/redirect-to.test.ts diff --git a/src/common/redirect-to.test.ts b/src/common/redirect-to.test.ts index eed5b4c8..e25d7be9 100644 --- a/src/common/redirect-to.test.ts +++ b/src/common/redirect-to.test.ts @@ -6,7 +6,26 @@ import { storeRedirects, handleRedirects } from './redirect-to'; describe('redirect-to', () => { const { location } = window; - const redirectTo = 'http://localhost/test123'; + const config: any = { + keepWebServiceUrl: 'http://localhost', + keepWebServiceInlineUrl: 'http://localhost' + }; + const redirectTo = '/test123'; + const locationTemplate = { + hash: '', + hostname: '', + origin: '', + host: '', + pathname: '', + port: '80', + protocol: 'http', + search: '', + reload: () => { }, + replace: () => { }, + assign: () => { }, + ancestorOrigins: [], + href: '', + }; afterAll((): void => { window.location = location; @@ -16,9 +35,10 @@ describe('redirect-to', () => { beforeEach(() => { delete window.location; window.location = { + ...locationTemplate, href: `${location.href}?redirectTo=${redirectTo}`, } as any; - Object.defineProperty(window, 'sessionStorage', { + Object.defineProperty(window, 'localStorage', { value: { setItem: jest.fn(), }, @@ -31,7 +51,7 @@ describe('redirect-to', () => { storeRedirects(); // then - expect(window.sessionStorage.setItem).toHaveBeenCalledWith('redirectTo', redirectTo); + expect(window.localStorage.setItem).toHaveBeenCalledWith('redirectTo', redirectTo); }); }); @@ -39,9 +59,10 @@ describe('redirect-to', () => { beforeEach(() => { delete window.location; window.location = { + ...locationTemplate, href: `${location.href}?redirectTo=${redirectTo}`, - } as any; - Object.defineProperty(window, 'sessionStorage', { + } as any;; + Object.defineProperty(window, 'localStorage', { value: { getItem: () => redirectTo, removeItem: jest.fn(), @@ -51,14 +72,11 @@ describe('redirect-to', () => { }); it('should redirect to page when it is present in session storage', () => { - // given - const token = 'testToken'; - // when - handleRedirects(token); + handleRedirects("abcxyz", config); // then - expect(window.location.href).toBe(`${redirectTo}?api_token=${token}`); + expect(window.location.href).toBe(`${config.keepWebServiceUrl}${redirectTo}?api_token=abcxyz`); }); }); -}); \ No newline at end of file +});