X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/b863f7aaab7112a32c7f9b1e7a0299c4266df2f5..3ec7057e490b3d19b15663dd312328f637fa1d3b:/src/store/auth/auth-reducer.test.ts diff --git a/src/store/auth/auth-reducer.test.ts b/src/store/auth/auth-reducer.test.ts index 17bd42175f..a7419286a2 100644 --- a/src/store/auth/auth-reducer.test.ts +++ b/src/store/auth/auth-reducer.test.ts @@ -2,26 +2,31 @@ // // SPDX-License-Identifier: AGPL-3.0 -import authReducer from "./auth-reducer"; -import actions from "./auth-action"; +import { authReducer, AuthState } from "./auth-reducer"; +import { AuthAction, authActions } from "./auth-action"; import { API_TOKEN_KEY, USER_EMAIL_KEY, USER_FIRST_NAME_KEY, - USER_LAST_NAME_KEY + USER_LAST_NAME_KEY, + USER_OWNER_UUID_KEY, + USER_UUID_KEY } from "../../services/auth-service/auth-service"; -import { API_HOST } from "../../common/api/server-api"; import 'jest-localstorage-mock'; +import { createServices } from "../../services/services"; describe('auth-reducer', () => { + let reducer: (state: AuthState | undefined, action: AuthAction) => any; + beforeAll(() => { localStorage.clear(); + reducer = authReducer(createServices("/arvados/v1")); }); it('should return default state on initialisation', () => { const initialState = undefined; - const state = authReducer(initialState, actions.INIT()); + const state = reducer(initialState, authActions.INIT()); expect(state).toEqual({ apiToken: undefined, user: undefined @@ -35,14 +40,18 @@ describe('auth-reducer', () => { localStorage.setItem(USER_EMAIL_KEY, "test@test.com"); localStorage.setItem(USER_FIRST_NAME_KEY, "John"); localStorage.setItem(USER_LAST_NAME_KEY, "Doe"); + localStorage.setItem(USER_UUID_KEY, "uuid"); + localStorage.setItem(USER_OWNER_UUID_KEY, "ownerUuid"); - const state = authReducer(initialState, actions.INIT()); + const state = reducer(initialState, authActions.INIT()); expect(state).toEqual({ apiToken: "token", user: { email: "test@test.com", firstName: "John", - lastName: "Doe" + lastName: "Doe", + uuid: "uuid", + ownerUuid: "ownerUuid" } }); }); @@ -50,7 +59,7 @@ describe('auth-reducer', () => { it('should store token in local storage', () => { const initialState = undefined; - const state = authReducer(initialState, actions.SAVE_API_TOKEN("token")); + const state = reducer(initialState, authActions.SAVE_API_TOKEN("token")); expect(state).toEqual({ apiToken: "token", user: undefined @@ -62,20 +71,23 @@ describe('auth-reducer', () => { it('should set user details on success fetch', () => { const initialState = undefined; - const userDetails = { + const user = { email: "test@test.com", - first_name: "John", - last_name: "Doe", - is_admin: true + firstName: "John", + lastName: "Doe", + uuid: "uuid", + ownerUuid: "ownerUuid" }; - const state = authReducer(initialState, actions.USER_DETAILS_SUCCESS(userDetails)); + const state = reducer(initialState, authActions.USER_DETAILS_SUCCESS(user)); expect(state).toEqual({ apiToken: undefined, user: { email: "test@test.com", firstName: "John", - lastName: "Doe" + lastName: "Doe", + uuid: "uuid", + ownerUuid: "ownerUuid", } }); @@ -85,18 +97,18 @@ describe('auth-reducer', () => { it('should fire external url to login', () => { const initialState = undefined; window.location.assign = jest.fn(); - authReducer(initialState, actions.LOGIN()); + reducer(initialState, authActions.LOGIN()); expect(window.location.assign).toBeCalledWith( - `${API_HOST}/login?return_to=${window.location.protocol}//${window.location.host}/token` + `/login?return_to=${window.location.protocol}//${window.location.host}/token` ); }); it('should fire external url to logout', () => { const initialState = undefined; window.location.assign = jest.fn(); - authReducer(initialState, actions.LOGOUT()); + reducer(initialState, authActions.LOGOUT()); expect(window.location.assign).toBeCalledWith( - `${API_HOST}/logout?return_to=${location.protocol}//${location.host}` + `/logout?return_to=${location.protocol}//${location.host}` ); }); });