mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	* fix: remove group owner concept * fix: adapt e2e tests accordingly * refactor users select to match improvement * refactor: add user -> edit users * feat: add edit users to group card actions * add a few more UI improvements * fix: edit group users icon * improve loading behaviour * fix group users refresh on card view * improvement: create group form validation * fix edit group, some refactoring * fix: e2e tests, minor bugs * fix: infinite re-renders due to useHiddenColumns useEffect array dependency * fix re-rendering on useHiddenColumns for some tables * refactor: validations into functions / variables
		
			
				
	
	
		
			114 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /// <reference types="cypress" />
 | |
| 
 | |
| export {};
 | |
| const baseUrl = Cypress.config().baseUrl;
 | |
| const randomId = String(Math.random()).split('.')[1];
 | |
| const groupName = `unleash-e2e-${randomId}`;
 | |
| const userIds: any[] = [];
 | |
| 
 | |
| // Disable all active splash pages by visiting them.
 | |
| const disableActiveSplashScreens = () => {
 | |
|     cy.visit(`/splash/operators`);
 | |
| };
 | |
| 
 | |
| describe('groups', () => {
 | |
|     before(() => {
 | |
|         disableActiveSplashScreens();
 | |
|         cy.login();
 | |
|         for (let i = 1; i <= 2; i++) {
 | |
|             cy.request('POST', `${baseUrl}/api/admin/user-admin`, {
 | |
|                 name: `unleash-e2e-user${i}-${randomId}`,
 | |
|                 email: `unleash-e2e-user${i}-${randomId}@test.com`,
 | |
|                 sendEmail: false,
 | |
|                 rootRole: 3,
 | |
|             }).then(response => userIds.push(response.body.id));
 | |
|         }
 | |
|     });
 | |
| 
 | |
|     after(() => {
 | |
|         userIds.forEach(id =>
 | |
|             cy.request('DELETE', `${baseUrl}/api/admin/user-admin/${id}`)
 | |
|         );
 | |
|     });
 | |
| 
 | |
|     beforeEach(() => {
 | |
|         cy.login();
 | |
|         cy.visit('/admin/groups');
 | |
|         if (document.querySelector("[data-testid='CLOSE_SPLASH']")) {
 | |
|             cy.get("[data-testid='CLOSE_SPLASH']").click();
 | |
|         }
 | |
|     });
 | |
| 
 | |
|     it('can create a group', () => {
 | |
|         cy.get("[data-testid='NAVIGATE_TO_CREATE_GROUP']").click();
 | |
| 
 | |
|         cy.intercept('POST', '/api/admin/groups').as('createGroup');
 | |
| 
 | |
|         cy.get("[data-testid='UG_NAME_ID']").type(groupName);
 | |
|         cy.get("[data-testid='UG_DESC_ID']").type('hello-world');
 | |
|         cy.get("[data-testid='UG_USERS_ID']").click();
 | |
|         cy.contains(`unleash-e2e-user1-${randomId}`).click();
 | |
| 
 | |
|         cy.get("[data-testid='UG_CREATE_BTN_ID']").click();
 | |
|         cy.wait('@createGroup');
 | |
|         cy.contains(groupName);
 | |
|     });
 | |
| 
 | |
|     it('gives an error if a group exists with the same name', () => {
 | |
|         cy.get("[data-testid='NAVIGATE_TO_CREATE_GROUP']").click();
 | |
| 
 | |
|         cy.intercept('POST', '/api/admin/groups').as('createGroup');
 | |
| 
 | |
|         cy.get("[data-testid='UG_NAME_ID']").type(groupName);
 | |
|         cy.get("[data-testid='INPUT_ERROR_TEXT'").contains(
 | |
|             'A group with that name already exists.'
 | |
|         );
 | |
|     });
 | |
| 
 | |
|     it('can edit a group', () => {
 | |
|         cy.contains(groupName).click();
 | |
| 
 | |
|         cy.get("[data-testid='UG_EDIT_BTN_ID']").click();
 | |
| 
 | |
|         cy.get("[data-testid='UG_DESC_ID']").type('-my edited description');
 | |
| 
 | |
|         cy.get("[data-testid='UG_SAVE_BTN_ID']").click();
 | |
| 
 | |
|         cy.contains('hello-world-my edited description');
 | |
|     });
 | |
| 
 | |
|     it('can add user to a group', () => {
 | |
|         cy.contains(groupName).click();
 | |
| 
 | |
|         cy.get("[data-testid='UG_EDIT_USERS_BTN_ID']").click();
 | |
| 
 | |
|         cy.get("[data-testid='UG_USERS_ID']").click();
 | |
|         cy.contains(`unleash-e2e-user2-${randomId}`).click();
 | |
| 
 | |
|         cy.get("[data-testid='UG_SAVE_BTN_ID']").click();
 | |
| 
 | |
|         cy.contains(`unleash-e2e-user1-${randomId}`);
 | |
|         cy.contains(`unleash-e2e-user2-${randomId}`);
 | |
|     });
 | |
| 
 | |
|     it('can remove user from a group', () => {
 | |
|         cy.contains(groupName).click();
 | |
| 
 | |
|         cy.get(`[data-testid='UG_REMOVE_USER_BTN_ID-${userIds[1]}']`).click();
 | |
| 
 | |
|         cy.get("[data-testid='DIALOGUE_CONFIRM_ID'").click();
 | |
| 
 | |
|         cy.contains(`unleash-e2e-user1-${randomId}`);
 | |
|         cy.contains(`unleash-e2e-user2-${randomId}`).should('not.exist');
 | |
|     });
 | |
| 
 | |
|     it('can delete a group', () => {
 | |
|         cy.contains(groupName).click();
 | |
| 
 | |
|         cy.get("[data-testid='UG_DELETE_BTN_ID']").click();
 | |
|         cy.get("[data-testid='DIALOGUE_CONFIRM_ID'").click();
 | |
| 
 | |
|         cy.contains(groupName).should('not.exist');
 | |
|     });
 | |
| });
 |