17119: add more unit tests.
authorWard Vandewege <ward@curii.com>
Fri, 19 Mar 2021 13:30:55 +0000 (09:30 -0400)
committerWard Vandewege <ward@curii.com>
Fri, 19 Mar 2021 13:30:55 +0000 (09:30 -0400)
Arvados-DCO-1.1-Signed-off-by: Ward Vandewege <ward@curii.com>

src/store/context-menu/context-menu-actions.test.ts

index 2f4f38b3dbe253b827aea91dc54dc3ddc10eb00b..c566e4ac9146a3b7a9a79b50131c3d170e753689 100644 (file)
@@ -18,69 +18,76 @@ describe('context-menu-actions', () => {
         const headCollectionUuid = 'zzzzz-4zz18-aaaaaaaaaaaaaaa';
         const oldCollectionUuid = 'zzzzz-4zz18-aaaaaaaaaaaaaab';
         const projectUuid = 'zzzzz-j7d0g-ccccccccccccccc';
+        const filterGroupUuid = 'zzzzz-j7d0g-ccccccccccccccd';
         const linkUuid = 'zzzzz-o0j2j-0123456789abcde';
         const containerRequestUuid = 'zzzzz-xvhdp-0123456789abcde';
 
         it('should return the correct menu kind', () => {
             const cases = [
-                // resourceUuid, isAdminUser, isEditable, isTrashed, expected
-                [headCollectionUuid, false, true, true, ContextMenuKind.TRASHED_COLLECTION],
-                [headCollectionUuid, false, true, false, ContextMenuKind.COLLECTION],
-                [headCollectionUuid, false, false, true, ContextMenuKind.READONLY_COLLECTION],
-                [headCollectionUuid, false, false, false, ContextMenuKind.READONLY_COLLECTION],
-                [headCollectionUuid, true, true, true, ContextMenuKind.TRASHED_COLLECTION],
-                [headCollectionUuid, true, true, false, ContextMenuKind.COLLECTION_ADMIN],
-                [headCollectionUuid, true, false, true, ContextMenuKind.TRASHED_COLLECTION],
-                [headCollectionUuid, true, false, false, ContextMenuKind.COLLECTION_ADMIN],
+                // resourceUuid, isAdminUser, isEditable, isTrashed, inFilterGroup, expected
+                [headCollectionUuid, false, true, true, false, ContextMenuKind.TRASHED_COLLECTION],
+                [headCollectionUuid, false, true, false, false, ContextMenuKind.COLLECTION],
+                [headCollectionUuid, false, true, false, true, ContextMenuKind.READONLY_COLLECTION],
+                [headCollectionUuid, false, false, true, false, ContextMenuKind.READONLY_COLLECTION],
+                [headCollectionUuid, false, false, false, false, ContextMenuKind.READONLY_COLLECTION],
+                [headCollectionUuid, true, true, true, false, ContextMenuKind.TRASHED_COLLECTION],
+                [headCollectionUuid, true, true, false, false, ContextMenuKind.COLLECTION_ADMIN],
+                [headCollectionUuid, true, false, true, false, ContextMenuKind.TRASHED_COLLECTION],
+                [headCollectionUuid, true, false, false, false, ContextMenuKind.COLLECTION_ADMIN],
+                [headCollectionUuid, true, false, false, true, ContextMenuKind.READONLY_COLLECTION],
 
-                [oldCollectionUuid, false, true, true, ContextMenuKind.OLD_VERSION_COLLECTION],
-                [oldCollectionUuid, false, true, false, ContextMenuKind.OLD_VERSION_COLLECTION],
-                [oldCollectionUuid, false, false, true, ContextMenuKind.OLD_VERSION_COLLECTION],
-                [oldCollectionUuid, false, false, false, ContextMenuKind.OLD_VERSION_COLLECTION],
-                [oldCollectionUuid, true, true, true, ContextMenuKind.OLD_VERSION_COLLECTION],
-                [oldCollectionUuid, true, true, false, ContextMenuKind.OLD_VERSION_COLLECTION],
-                [oldCollectionUuid, true, false, true, ContextMenuKind.OLD_VERSION_COLLECTION],
-                [oldCollectionUuid, true, false, false, ContextMenuKind.OLD_VERSION_COLLECTION],
+                [oldCollectionUuid, false, true, true, false, ContextMenuKind.OLD_VERSION_COLLECTION],
+                [oldCollectionUuid, false, true, false, false, ContextMenuKind.OLD_VERSION_COLLECTION],
+                [oldCollectionUuid, false, false, true, false, ContextMenuKind.OLD_VERSION_COLLECTION],
+                [oldCollectionUuid, false, false, false, false, ContextMenuKind.OLD_VERSION_COLLECTION],
+                [oldCollectionUuid, true, true, true, false, ContextMenuKind.OLD_VERSION_COLLECTION],
+                [oldCollectionUuid, true, true, false, false, ContextMenuKind.OLD_VERSION_COLLECTION],
+                [oldCollectionUuid, true, false, true, false, ContextMenuKind.OLD_VERSION_COLLECTION],
+                [oldCollectionUuid, true, false, false, false, ContextMenuKind.OLD_VERSION_COLLECTION],
 
                 // FIXME: WB2 doesn't currently have context menu for trashed projects
-                // [projectUuid, false, true, true, ContextMenuKind.TRASHED_PROJECT],
-                [projectUuid, false, true, false, ContextMenuKind.PROJECT],
-                [projectUuid, false, false, true, ContextMenuKind.READONLY_PROJECT],
-                [projectUuid, false, false, false, ContextMenuKind.READONLY_PROJECT],
-                // [projectUuid, true, true, true, ContextMenuKind.TRASHED_PROJECT],
-                [projectUuid, true, true, false, ContextMenuKind.PROJECT_ADMIN],
-                // [projectUuid, true, false, true, ContextMenuKind.TRASHED_PROJECT],
-                [projectUuid, true, false, false, ContextMenuKind.PROJECT_ADMIN],
+                // [projectUuid, false, true, true, false, ContextMenuKind.TRASHED_PROJECT],
+                [projectUuid, false, true, false, false, ContextMenuKind.PROJECT],
+                [projectUuid, false, true, false, true, ContextMenuKind.READONLY_PROJECT],
+                [projectUuid, false, false, true, false, ContextMenuKind.READONLY_PROJECT],
+                [projectUuid, false, false, false, false, ContextMenuKind.READONLY_PROJECT],
+                // [projectUuid, true, true, true, false, ContextMenuKind.TRASHED_PROJECT],
+                [projectUuid, true, true, false, false, ContextMenuKind.PROJECT_ADMIN],
+                // [projectUuid, true, false, true, false, ContextMenuKind.TRASHED_PROJECT],
+                [projectUuid, true, false, false, false, ContextMenuKind.PROJECT_ADMIN],
+                [projectUuid, true, false, false, true, ContextMenuKind.READONLY_PROJECT],
 
-                [linkUuid, false, true, true, ContextMenuKind.LINK],
-                [linkUuid, false, true, false, ContextMenuKind.LINK],
-                [linkUuid, false, false, true, ContextMenuKind.LINK],
-                [linkUuid, false, false, false, ContextMenuKind.LINK],
-                [linkUuid, true, true, true, ContextMenuKind.LINK],
-                [linkUuid, true, true, false, ContextMenuKind.LINK],
-                [linkUuid, true, false, true, ContextMenuKind.LINK],
-                [linkUuid, true, false, false, ContextMenuKind.LINK],
+                [linkUuid, false, true, true, false, ContextMenuKind.LINK],
+                [linkUuid, false, true, false, false, ContextMenuKind.LINK],
+                [linkUuid, false, false, true, false, ContextMenuKind.LINK],
+                [linkUuid, false, false, false, false, ContextMenuKind.LINK],
+                [linkUuid, true, true, true, false, ContextMenuKind.LINK],
+                [linkUuid, true, true, false, false, ContextMenuKind.LINK],
+                [linkUuid, true, false, true, false, ContextMenuKind.LINK],
+                [linkUuid, true, false, false, false, ContextMenuKind.LINK],
 
-                [userUuid, false, true, true, ContextMenuKind.ROOT_PROJECT],
-                [userUuid, false, true, false, ContextMenuKind.ROOT_PROJECT],
-                [userUuid, false, false, true, ContextMenuKind.ROOT_PROJECT],
-                [userUuid, false, false, false, ContextMenuKind.ROOT_PROJECT],
-                [userUuid, true, true, true, ContextMenuKind.ROOT_PROJECT],
-                [userUuid, true, true, false, ContextMenuKind.ROOT_PROJECT],
-                [userUuid, true, false, true, ContextMenuKind.ROOT_PROJECT],
-                [userUuid, true, false, false, ContextMenuKind.ROOT_PROJECT],
+                [userUuid, false, true, true, false, ContextMenuKind.ROOT_PROJECT],
+                [userUuid, false, true, false, false, ContextMenuKind.ROOT_PROJECT],
+                [userUuid, false, false, true, false, ContextMenuKind.ROOT_PROJECT],
+                [userUuid, false, false, false, false, ContextMenuKind.ROOT_PROJECT],
+                [userUuid, true, true, true, false, ContextMenuKind.ROOT_PROJECT],
+                [userUuid, true, true, false, false, ContextMenuKind.ROOT_PROJECT],
+                [userUuid, true, false, true, false, ContextMenuKind.ROOT_PROJECT],
+                [userUuid, true, false, false, false, ContextMenuKind.ROOT_PROJECT],
 
-                [containerRequestUuid, false, true, true, ContextMenuKind.PROCESS_RESOURCE],
-                [containerRequestUuid, false, true, false, ContextMenuKind.PROCESS_RESOURCE],
-                [containerRequestUuid, false, false, true, ContextMenuKind.PROCESS_RESOURCE],
-                [containerRequestUuid, false, false, false, ContextMenuKind.PROCESS_RESOURCE],
-                [containerRequestUuid, true, true, true, ContextMenuKind.PROCESS_ADMIN],
-                [containerRequestUuid, true, true, false, ContextMenuKind.PROCESS_ADMIN],
-                [containerRequestUuid, true, false, true, ContextMenuKind.PROCESS_ADMIN],
-                [containerRequestUuid, true, false, false, ContextMenuKind.PROCESS_ADMIN],
+                [containerRequestUuid, false, true, true, false, ContextMenuKind.PROCESS_RESOURCE],
+                [containerRequestUuid, false, true, false, false, ContextMenuKind.PROCESS_RESOURCE],
+                [containerRequestUuid, false, false, true, false, ContextMenuKind.PROCESS_RESOURCE],
+                [containerRequestUuid, false, false, false, false, ContextMenuKind.PROCESS_RESOURCE],
+                [containerRequestUuid, false, false, false, true, ContextMenuKind.READONLY_PROCESS_RESOURCE],
+                [containerRequestUuid, true, true, true, false, ContextMenuKind.PROCESS_ADMIN],
+                [containerRequestUuid, true, true, false, false, ContextMenuKind.PROCESS_ADMIN],
+                [containerRequestUuid, true, false, true, false, ContextMenuKind.PROCESS_ADMIN],
+                [containerRequestUuid, true, false, false, false, ContextMenuKind.PROCESS_ADMIN],
+                [containerRequestUuid, true, false, false, true, ContextMenuKind.READONLY_PROCESS_RESOURCE],
             ]
 
-            cases.forEach(([resourceUuid, isAdminUser, isEditable, isTrashed, expected]) => {
+            cases.forEach(([resourceUuid, isAdminUser, isEditable, isTrashed, inFilterGroup, expected]) => {
                 const initialState = {
                     properties: {
                         [PROJECT_PANEL_CURRENT_UUID]: projectUuid,
@@ -103,6 +110,12 @@ describe('context-menu-actions', () => {
                             writableBy: isEditable ? [userUuid] : [otherUserUuid],
                             groupClass: GroupClass.PROJECT,
                         },
+                        [filterGroupUuid]: {
+                            uuid: filterGroupUuid,
+                            ownerUuid: isEditable ? userUuid : otherUserUuid,
+                            writableBy: isEditable ? [userUuid] : [otherUserUuid],
+                            groupClass: GroupClass.FILTER,
+                        },
                         [linkUuid]: {
                             uuid: linkUuid,
                         },
@@ -120,6 +133,14 @@ describe('context-menu-actions', () => {
                             isAdmin: isAdminUser,
                         },
                     },
+                    properties: {
+                      projectPanelCurrentUuid: inFilterGroup ? filterGroupUuid : "",
+                    },
+                    router: {
+                        location: {
+                            pathname: inFilterGroup ? "/projects/" + filterGroupUuid : "",
+                        },
+                    },
                 };
                 const store = mockStore(initialState);
 
@@ -133,4 +154,4 @@ describe('context-menu-actions', () => {
             });
         });
     });
-});
\ No newline at end of file
+});