diff --git a/apps/dsp-app/cypress/e2e/system-admin/project-members.cy.ts b/apps/dsp-app/cypress/e2e/system-admin/project-members.cy.ts new file mode 100644 index 0000000000..442858affc --- /dev/null +++ b/apps/dsp-app/cypress/e2e/system-admin/project-members.cy.ts @@ -0,0 +1,30 @@ +import { Project0001Page } from '../../support/pages/existing-ontology-class-page'; + +describe('Project members', () => { + let project0001Page: Project0001Page; + + before(() => { + cy.resetDatabase(); + project0001Page = new Project0001Page(); + }); + + it('admin can remove user from a project', () => { + cy.intercept('DELETE', '/admin/users/**').as('deleteRequest'); + cy.intercept('GET', '**/members').as('membersRequest'); + cy.visit(`/project/${Project0001Page.projectShortCode}/settings/collaboration`); + let memberCount = 0; + cy.get('[data-cy=member-count]') + .should('be.visible') + .invoke('text') + .then(text => { + memberCount = parseInt(text.match(/\d+/)?.[0]); + expect(memberCount).to.be.greaterThan(0); + }); + + cy.get('[data-cy=user-menu]').should('exist').first().click(); + cy.get('[data-cy=remove-member-button]').should('be.visible').click(); + cy.get('[data-cy=confirmation-button]').should('be.visible').click(); + cy.wait('@deleteRequest').its('response.statusCode').should('eq', 200); + cy.wait('@membersRequest').its('response.statusCode').should('eq', 200); + }); +}); diff --git a/libs/vre/pages/system/system/src/lib/users/users-list/users-list.component.html b/libs/vre/pages/system/system/src/lib/users/users-list/users-list.component.html index 188aefad02..c0c332025f 100644 --- a/libs/vre/pages/system/system/src/lib/users/users-list/users-list.component.html +++ b/libs/vre/pages/system/system/src/lib/users/users-list/users-list.component.html @@ -20,8 +20,12 @@