18123: Add test for resources shared with group.
authorStephen Smith <stephen@curii.com>
Wed, 1 Dec 2021 19:30:57 +0000 (14:30 -0500)
committerStephen Smith <stephen@curii.com>
Wed, 1 Dec 2021 19:30:57 +0000 (14:30 -0500)
Arvados-DCO-1.1-Signed-off-by: Stephen Smith <stephen@curii.com>

cypress/integration/group-manage.spec.js
src/views-components/data-explorer/renderers.tsx

index b317ad3c0b392b2625d4ed9b7996ca4bf3d6b392..14abcd2ded33f0d3dca08095de459eb827031682 100644 (file)
@@ -104,7 +104,7 @@ describe('Group manage tests', function() {
             });
     });
 
-    it('unhides users', function() {
+    it('can unhide and re-hide users', function() {
         // Must use admin user to have manage permission on user
         cy.loginAs(adminUser);
         cy.get('[data-cy=side-panel-tree]').contains('Groups').click();
@@ -145,9 +145,36 @@ describe('Group manage tests', function() {
             .should('not.contain', 'Other User')
     });
 
-    it('removes users from the group', function() {
+    it('displays resources shared with the group', function() {
+        // Switch to activeUser
         cy.loginAs(activeUser);
         cy.get('[data-cy=side-panel-tree]').contains('Groups').click();
+
+        // Get groupUuid and create shared project
+        cy.get('[data-cy=groups-panel-data-explorer]')
+            .contains(groupName)
+            .parents('tr')
+            .find('[data-cy=uuid]')
+            .invoke('text')
+            .as('groupUuid')
+            .then((groupUuid) => {
+                cy.createProject({
+                    owningUser: activeUser,
+                    projectName: 'test-project',
+                }).as('testProject').then((testProject) => {
+                    cy.shareWith(activeUser.token, groupUuid, testProject.uuid, 'can_read');
+                });
+            });
+
+        // Check that the project is listed in permissions
+        cy.get('[data-cy=groups-panel-data-explorer]').contains(groupName).click();
+        cy.get('[data-cy=group-details-permissions-tab]').click();
+        cy.get('[data-cy=group-permissions-data-explorer]')
+            .contains('test-project');
+    });
+
+    it('removes users from the group', function() {
+        cy.get('[data-cy=side-panel-tree]').contains('Groups').click();
         cy.get('[data-cy=groups-panel-data-explorer]').contains(groupName).click();
 
         // Remove other user
index e87c9f33a7dafbd2ee4fe9253c9ea93dd7b162a0..a13269e5b544d50023e7ccab3b638f5f0d9e2bcd 100644 (file)
@@ -171,7 +171,7 @@ export const ResourceFullName = connect(
 
 
 const renderUuid = (item: { uuid: string }) =>
-    <Typography noWrap>{item.uuid}</Typography>;
+    <Typography data-cy="uuid" noWrap>{item.uuid}</Typography>;
 
 export const ResourceUuid = connect(
     (state: RootState, props: { uuid: string }) => {