Merge branch 'master' into 14452-my-account
[arvados-workbench2.git] / src / store / auth / auth-actions.test.ts
index dc399cfcfec9d256094213ea3855a47b777a1f88..aeee2b3b7c8f66d90b4e26c6bb4c09a3c10337e2 100644 (file)
@@ -3,29 +3,36 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import { authReducer, AuthState } from "./auth-reducer";
-import { AuthAction, authActions, initAuth } from "./auth-action";
+import { AuthAction, initAuth } from "./auth-action";
 import {
     API_TOKEN_KEY,
     USER_EMAIL_KEY,
     USER_FIRST_NAME_KEY,
     USER_LAST_NAME_KEY,
     USER_OWNER_UUID_KEY,
-    USER_UUID_KEY
-} from "../../services/auth-service/auth-service";
+    USER_UUID_KEY,
+    USER_IS_ADMIN
+} from "~/services/auth-service/auth-service";
 
 import 'jest-localstorage-mock';
-import { createServices } from "../../services/services";
+import { createServices } from "~/services/services";
 import { configureStore, RootStore } from "../store";
-import createBrowserHistory from "../../../node_modules/@types/history/createBrowserHistory";
+import createBrowserHistory from "history/createBrowserHistory";
+import { mockConfig } from '~/common/config';
+import { ApiActions } from "~/services/api/api-actions";
 
 describe('auth-actions', () => {
     let reducer: (state: AuthState | undefined, action: AuthAction) => any;
     let store: RootStore;
+    const actions: ApiActions = {
+        progressFn: (id: string, working: boolean) => {},
+        errorFn: (id: string, message: string) => {}
+    };
 
     beforeEach(() => {
-        store = configureStore(createBrowserHistory(), createServices("/arvados/v1"));
+        store = configureStore(createBrowserHistory(), createServices(mockConfig({}), actions));
         localStorage.clear();
-        reducer = authReducer(createServices("/arvados/v1"));
+        reducer = authReducer(createServices(mockConfig({}), actions));
     });
 
     it('should initialise state with user and api token from local storage', () => {
@@ -36,21 +43,25 @@ describe('auth-actions', () => {
         localStorage.setItem(USER_LAST_NAME_KEY, "Doe");
         localStorage.setItem(USER_UUID_KEY, "uuid");
         localStorage.setItem(USER_OWNER_UUID_KEY, "ownerUuid");
+        localStorage.setItem(USER_IS_ADMIN, JSON.stringify("false"));
 
         store.dispatch(initAuth());
 
         expect(store.getState().auth).toEqual({
             apiToken: "token",
+            sshKeys: [],
             user: {
                 email: "test@test.com",
                 firstName: "John",
                 lastName: "Doe",
                 uuid: "uuid",
-                ownerUuid: "ownerUuid"
+                ownerUuid: "ownerUuid",
+                isAdmin: false
             }
         });
     });
 
+    // TODO: Add remaining action tests
     /*
     it('should fire external url to login', () => {
         const initialState = undefined;
@@ -71,3 +82,5 @@ describe('auth-actions', () => {
     });
     */
 });
+
+