From 2c257e34488b251e146631e12559732b3879d567 Mon Sep 17 00:00:00 2001 From: Stephen Smith Date: Wed, 1 Dec 2021 13:40:59 -0500 Subject: [PATCH] 18123: Add tests for hide group member and rename/delete group. Arvados-DCO-1.1-Signed-off-by: Stephen Smith --- cypress/integration/group-manage.spec.js | 90 ++++++++++++++++++- .../data-explorer/renderers.tsx | 1 + .../group-details-panel.tsx | 5 +- 3 files changed, 93 insertions(+), 3 deletions(-) diff --git a/cypress/integration/group-manage.spec.js b/cypress/integration/group-manage.spec.js index 690102c0..b317ad3c 100644 --- a/cypress/integration/group-manage.spec.js +++ b/cypress/integration/group-manage.spec.js @@ -6,6 +6,7 @@ describe('Group manage tests', function() { let activeUser; let adminUser; let otherUser; + const groupName = `Test group (${Math.floor(999999 * Math.random())})`; before(function() { // Only set up common users once. These aren't set up as aliases because @@ -35,7 +36,6 @@ describe('Group manage tests', function() { }); it('creates a new group', function() { - const groupName = `Test group (${Math.floor(999999 * Math.random())})`; cy.loginAs(activeUser); // Navigate to Groups @@ -104,7 +104,52 @@ describe('Group manage tests', function() { }); }); + it('unhides 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(); + cy.get('[data-cy=groups-panel-data-explorer]').contains(groupName).click(); + + // Check that other user is hidden + cy.get('[data-cy=group-details-permissions-tab]').click(); + cy.get('[data-cy=group-permissions-data-explorer]') + .should('not.contain', 'Other User') + cy.get('[data-cy=group-details-members-tab]').click(); + + // Test unhide + cy.get('[data-cy=group-members-data-explorer]') + .contains('Other User') + .parents('tr') + .within(() => { + cy.get('[data-cy=user-hidden-checkbox]').click(); + }); + // Check that other user is visible + cy.get('[data-cy=group-details-permissions-tab]').click(); + cy.get('[data-cy=group-permissions-data-explorer]') + .contains('Other User') + .parents('tr') + .within(() => { + cy.contains('Read'); + }); + // Test re-hide + cy.get('[data-cy=group-details-members-tab]').click(); + cy.get('[data-cy=group-members-data-explorer]') + .contains('Other User') + .parents('tr') + .within(() => { + cy.get('[data-cy=user-hidden-checkbox]').click(); + }); + // Check that other user is hidden + cy.get('[data-cy=group-details-permissions-tab]').click(); + cy.get('[data-cy=group-permissions-data-explorer]') + .should('not.contain', 'Other User') + }); + it('removes users from the group', function() { + cy.loginAs(activeUser); + cy.get('[data-cy=side-panel-tree]').contains('Groups').click(); + cy.get('[data-cy=groups-panel-data-explorer]').contains(groupName).click(); + // Remove other user cy.get('[data-cy=group-members-data-explorer]') .contains('Other User') @@ -115,6 +160,49 @@ describe('Group manage tests', function() { cy.get('[data-cy=confirmation-dialog-ok-btn]').click(); cy.get('[data-cy=group-members-data-explorer]') .should('not.contain', 'Other User'); + }); + + it('renames the group', function() { + // Navigate to Groups + cy.get('[data-cy=side-panel-tree]').contains('Groups').click(); + + // Open rename dialog + cy.get('[data-cy=groups-panel-data-explorer]') + .contains(groupName) + .rightclick(); + cy.get('[data-cy=context-menu]') + .contains('Rename') + .click(); + // Rename the group + cy.get('[data-cy=form-dialog]') + .should('contain', 'Edit Project') + .within(() => { + cy.get('input[name=name]').clear().type(groupName + ' (renamed)'); + cy.get('button[type=submit]').click(); + }); + + // Check that the group was renamed + cy.get('[data-cy=groups-panel-data-explorer]') + .contains(groupName + ' (renamed)'); }); + + it('deletes the group', function() { + // Navigate to Groups + cy.get('[data-cy=side-panel-tree]').contains('Groups').click(); + + // Delete the group + cy.get('[data-cy=groups-panel-data-explorer]') + .contains(groupName + ' (renamed)') + .rightclick(); + cy.get('[data-cy=context-menu]') + .contains('Remove') + .click(); + cy.get('[data-cy=confirmation-dialog-ok-btn]').click(); + + // Check that the group was deleted + cy.get('[data-cy=groups-panel-data-explorer]') + .should('not.contain', groupName + ' (renamed)'); + }); + }); diff --git a/src/views-components/data-explorer/renderers.tsx b/src/views-components/data-explorer/renderers.tsx index 457de504..e87c9f33 100644 --- a/src/views-components/data-explorer/renderers.tsx +++ b/src/views-components/data-explorer/renderers.tsx @@ -218,6 +218,7 @@ export const ResourceLinkTailIsActive = connect( const renderIsHidden = (props: { memberLinkUuid: string, permissionLinkUuid: string, hidden: boolean, setMemberIsHidden: (memberLinkUuid: string, permissionLinkUuid: string, hide: boolean) => void }) => { if (props.memberLinkUuid) { return props.setMemberIsHidden(props.memberLinkUuid, props.permissionLinkUuid, !props.hidden)} />; diff --git a/src/views/group-details-panel/group-details-panel.tsx b/src/views/group-details-panel/group-details-panel.tsx index a44304c4..932005a7 100644 --- a/src/views/group-details-panel/group-details-panel.tsx +++ b/src/views/group-details-panel/group-details-panel.tsx @@ -167,8 +167,8 @@ export const GroupDetailsPanel = connect( return ( - - + + {value === 0 &&