15803: Add checks that user uuid (from getUserUuid) is defined
authorPeter Amstutz <pamstutz@veritasgenetics.com>
Wed, 27 Nov 2019 14:28:34 +0000 (09:28 -0500)
committerPeter Amstutz <pamstutz@veritasgenetics.com>
Wed, 27 Nov 2019 14:28:34 +0000 (09:28 -0500)
Add @types/sinon to package.json

17 files changed:
package.json
src/services/auth-service/auth-service.ts
src/store/auth/auth-action-ssh.ts
src/store/collections/collection-create-actions.ts
src/store/favorites/favorites-actions.ts
src/store/link-account-panel/link-account-panel-actions.ts
src/store/project-tree-picker/project-tree-picker-actions.ts
src/store/projects/project-create-actions.ts
src/store/projects/project-move-actions.ts
src/store/repositories/repositories-actions.ts
src/store/run-process-panel/run-process-panel-actions.ts
src/store/search-bar/search-bar-tree-actions.ts
src/store/side-panel-tree/side-panel-tree-actions.ts
src/store/trash-panel/trash-panel-middleware-service.ts
src/store/tree-picker/tree-picker-actions.ts
src/store/users/users-actions.ts
yarn.lock

index 6a56d826d68442bc0624fe88c047772a9f34d318..e01351f535c076ee9f90812a57548f77e1b6b1ed 100644 (file)
@@ -92,7 +92,8 @@
     "node-sass": "4.9.4",
     "node-sass-chokidar": "1.3.4",
     "redux-devtools": "3.4.1",
-    "typescript": "3.1.1"
+    "typescript": "3.1.1",
+    "@types/sinon": "7.5"
   },
   "jest": {
     "moduleNameMapper": {
index 63cdd08cbffee99764d0b1efa0c7e6e279e0a7e6..c6e93a8fe777210e45d8f8a4a1bc9f2abb7fec33 100644 (file)
@@ -44,7 +44,7 @@ export class AuthService {
     public saveApiToken(token: string) {
         localStorage.setItem(API_TOKEN_KEY, token);
         const sp = token.split('/');
-        if (sp.length == 3) {
+        if (sp.length === 3) {
             localStorage.setItem(HOME_CLUSTER, sp[1].substr(0, 5));
         }
     }
index 27a5c52d8381b6b647914a6537ab8ae446247e4e..6e9ddaab3278894909b5139c4440bf4fbcff60c4 100644 (file)
@@ -62,6 +62,7 @@ export const removeSshKey = (uuid: string) =>
 export const createSshKey = (data: SshKeyCreateFormDialogData) =>
     async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
         const userUuid = getUserUuid(getState());
+        if (!userUuid) { return; }
         const { name, publicKey } = data;
         dispatch(startSubmit(SSH_KEY_CREATE_FORM_NAME));
         try {
index 1b4e86da05fcd056ae1d9ddeed09dbf9aa6e25a7..c7dc2ae8ff7bb316410401c4d1662ad0c5ecc405 100644 (file)
@@ -30,6 +30,7 @@ export const openCollectionCreateDialog = (ownerUuid: string) =>
         const properties = getState().properties;
         if (isItemNotInProject(properties) || !isProjectOrRunProcessRoute(router)) {
             const userUuid = getUserUuid(getState());
+            if (!userUuid) { return; }
             dispatch(initialize(COLLECTION_CREATE_FORM_NAME, { userUuid }));
         } else {
             dispatch(initialize(COLLECTION_CREATE_FORM_NAME, { ownerUuid }));
index 3221d17a06bab3b9a5de3650a0e6bcdf843c5993..3a16c562423122f58830770cc9fd4d30ea0e83b1 100644 (file)
@@ -61,9 +61,7 @@ export const toggleFavorite = (resource: { uuid: string; name: string }) =>
 export const updateFavorites = (resourceUuids: string[]) =>
     (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
         const userUuid = getUserUuid(getState());
-        if (!userUuid) {
-            return;
-        }
+        if (!userUuid) { return; }
         dispatch(favoritesActions.CHECK_PRESENCE_IN_FAVORITES(resourceUuids));
         services.favoriteService
             .checkPresenceInFavorites(userUuid, resourceUuids)
index 108b77478727c0f3ce45298687580c60bafb7c4d..6540ee696ac33f464f9c888bda080c98dffaaa44 100644 (file)
@@ -204,7 +204,9 @@ export const loadLinkAccountPanel = () =>
 
 export const startLinking = (t: LinkAccountType) =>
     (dispatch: Dispatch<any>, getState: () => RootState, services: ServiceRepository) => {
-        const accountToLink = { type: t, userUuid: getUserUuid(getState()), token: services.authService.getApiToken() } as AccountToLink;
+        const userUuid = getUserUuid(getState());
+        if (!userUuid) { return; }
+        const accountToLink = { type: t, userUuid, token: services.authService.getApiToken() } as AccountToLink;
         services.linkAccountService.saveAccountToLink(accountToLink);
 
         const auth = getState().auth;
index 6ec13bfe7fc57dc2216ded2acb96a83c7b572a1a..d05e2dc7a1c73e10eff89b3420248836132f913e 100644 (file)
@@ -20,7 +20,7 @@ export const resetPickerProjectTree = () => (dispatch: Dispatch, getState: () =>
 
 export const initPickerProjectTree = () => (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
     const uuid = getUserUuid(getState());
-
+    if (!uuid) { return; }
     dispatch<any>(getPickerTreeProjects(uuid));
     dispatch<any>(getSharedWithMeProjectsPickerTree(uuid));
     dispatch<any>(getFavoritesProjectsPickerTree(uuid));
index fe1aeda7f3db003f4f883993a9321e473ffe3e1b..7f12b7cfeeb1fd7526267be2cc613689a82395b1 100644 (file)
@@ -49,6 +49,7 @@ export const openProjectCreateDialog = (ownerUuid: string) =>
         const properties = getState().properties;
         if (isItemNotInProject(properties) || !isProjectOrRunProcessRoute(router)) {
             const userUuid = getUserUuid(getState());
+            if (!userUuid) { return; }
             dispatch(initialize(PROJECT_CREATE_FORM_NAME, { userUuid }));
         } else {
             dispatch(initialize(PROJECT_CREATE_FORM_NAME, { ownerUuid }));
index fb34fa6e2a6b9995ed951463933effabb10a5928..d8eebb8194c05576a33e6eac6f37c4b6e7fed8e0 100644 (file)
@@ -28,9 +28,7 @@ export const openMoveProjectDialog = (resource: { name: string, uuid: string })
 export const moveProject = (resource: MoveToFormDialogData) =>
     async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
         const userUuid = getUserUuid(getState());
-        if (!userUuid) {
-            return;
-        }
+        if (!userUuid) { return; }
         dispatch(startSubmit(PROJECT_MOVE_FORM_NAME));
         try {
             const newProject = await services.projectService.update(resource.uuid, { ownerUuid: resource.ownerUuid });
index 263262f7db64b638f7cc912e985cb001e17c1f11..4585231f468a192976edb4174d4398287cb87792 100644 (file)
@@ -42,6 +42,7 @@ export const openRepositoryAttributes = (uuid: string) =>
 export const openRepositoryCreateDialog = () =>
     async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
         const userUuid = getUserUuid(getState());
+       if (!userUuid) { return; }
         const user = await services.userService.get(userUuid!);
         dispatch(reset(REPOSITORY_CREATE_FORM_NAME));
         dispatch(dialogActions.OPEN_DIALOG({ id: REPOSITORY_CREATE_FORM_NAME, data: { user } }));
@@ -50,6 +51,7 @@ export const openRepositoryCreateDialog = () =>
 export const createRepository = (repository: RepositoryResource) =>
     async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
         const userUuid = getUserUuid(getState());
+       if (!userUuid) { return; }      
         const user = await services.userService.get(userUuid!);
         dispatch(startSubmit(REPOSITORY_CREATE_FORM_NAME));
         try {
index c5fbd5329d689535d58dad204662703a8aeb95c8..66c784f944460dbc5f20b11926e27045baea1589 100644 (file)
@@ -120,6 +120,7 @@ export const runProcess = async (dispatch: Dispatch<any>, getState: () => RootSt
     const inputsForm = getFormValues(RUN_PROCESS_INPUTS_FORM)(state) as WorkflowInputsData;
     const advancedForm = getFormValues(RUN_PROCESS_ADVANCED_FORM)(state) as RunProcessAdvancedFormData || DEFAULT_ADVANCED_FORM_VALUES;
     const userUuid = getUserUuid(getState());
+    if (!userUuid) { return; }
     const pathname = getState().runProcessPanel.processPathname;
     const { processOwnerUuid, selectedWorkflow } = state.runProcessPanel;
     if (selectedWorkflow) {
index 0d193fa21e2fd9ac6ee2c02d60ee3a997c3f1e29..c97d77b35c4ce2308c1f2698893c5ac5fab9733e 100644 (file)
@@ -41,9 +41,7 @@ export const getSearchBarTreeNodeAncestorsIds = (id: string) => (treePicker: Tre
 export const activateSearchBarTreeBranch = (id: string) =>
     async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
         const userUuid = getUserUuid(getState());
-        if (!userUuid) {
-            return;
-        }
+        if (!userUuid) { return; }
         const ancestors = await services.ancestorsService.ancestors(id, userUuid);
 
         for (const ancestor of ancestors) {
index 4aa5e26e3468b7bed559421a848611875bde34b8..1bb1624df7cdd58935c561493bb18e89ce529301 100644 (file)
@@ -55,9 +55,7 @@ export const isSidePanelTreeCategory = (id: string) => SIDE_PANEL_CATEGORIES.som
 export const initSidePanelTree = () =>
     (dispatch: Dispatch, getState: () => RootState, { authService }: ServiceRepository) => {
         const rootProjectUuid = getUserUuid(getState());
-        if (!rootProjectUuid) {
-            return;
-        }
+        if (!rootProjectUuid) { return; }
         const nodes = SIDE_PANEL_CATEGORIES.map(id => initTreeNode({ id, value: id }));
         const projectsNode = initTreeNode({ id: rootProjectUuid, value: SidePanelTreeCategory.PROJECTS });
         const sharedNode = initTreeNode({ id: SidePanelTreeCategory.SHARED_WITH_ME, value: SidePanelTreeCategory.SHARED_WITH_ME });
@@ -161,9 +159,7 @@ export const activateSidePanelTreeProject = (id: string) =>
 export const activateSidePanelTreeBranch = (id: string) =>
     async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
         const userUuid = getUserUuid(getState());
-        if (!userUuid) {
-            return;
-        }
+        if (!userUuid) { return; }
         const ancestors = await services.ancestorsService.ancestors(id, userUuid);
         const isShared = ancestors.every(({ uuid }) => uuid !== userUuid);
         if (isShared) {
index c9a6b93d9cc239361c0d1e3381d9350c14906a7d..bf7fae56ece038391cc7bde875ce7a8baf590a26 100644 (file)
@@ -66,9 +66,7 @@ export class TrashPanelMiddlewareService extends DataExplorerMiddlewareService {
         }
 
         const userUuid = getUserUuid(api.getState());
-        if (!userUuid) {
-            return;
-        }
+        if (!userUuid) { return; }
         try {
             api.dispatch(progressIndicatorActions.START_WORKING(this.getId()));
             const listResults = await this.services.groupsService
index d1eef8fbec8c4d155de0c22eb297b85977e9e01b..3fc718fff3d4e9660cb5e7adfeca2cccb7d4a93f 100644 (file)
@@ -235,7 +235,6 @@ export const loadFavoritesProject = (params: LoadFavoritesProjectParams) =>
         const { pickerId, includeCollections = false, includeFiles = false } = params;
         const uuid = getUserUuid(getState());
         if (uuid) {
-
             const filters = pipe(
                 (fb: FilterBuilder) => includeCollections
                     ? fb.addIsA('headUuid', [ResourceKind.PROJECT, ResourceKind.COLLECTION])
index 05cdc9b60c2b5b2450c2e830307c22e4e13935dd..8d7d0dcd7dc049fc5bafe6aa6ac13c68127a7b7a 100644 (file)
@@ -65,6 +65,7 @@ export const loginAs = (uuid: string) =>
 export const openUserCreateDialog = () =>
     async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
         const userUuid = getUserUuid(getState());
+       if (!userUuid) { return; }
         const user = await services.userService.get(userUuid!);
         const virtualMachines = await services.virtualMachineService.list();
         dispatch(reset(USER_CREATE_FORM_NAME));
index 948b7fa631dedecc4bd35a5fd4c20a3b11160adb..559adb5302190c17c7a19f42d993a180df938877 100644 (file)
--- a/yarn.lock
+++ b/yarn.lock
   version "1.6.0"
   resolved "https://registry.yarnpkg.com/@types/shell-quote/-/shell-quote-1.6.0.tgz#537b2949a2ebdcb0d353e448fee45b081021963f"
 
+"@types/sinon@7.5":
+  version "7.5.1"
+  resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-7.5.1.tgz#d27b81af0d1cfe1f9b24eebe7a24f74ae40f5b7c"
+  integrity sha512-EZQUP3hSZQyTQRfiLqelC9NMWd1kqLcmQE0dMiklxBkgi84T+cHOhnKpgk4NnOWpGX863yE6+IaGnOXUNFqDnQ==
+
 "@types/uuid@3.4.4":
   version "3.4.4"
   resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-3.4.4.tgz#7af69360fa65ef0decb41fd150bf4ca5c0cefdf5"