mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 01:56:46 +00:00
refactor(editor): Update users list on user settings page (#16244)
Co-authored-by: Andreas Fitzek <andreas.fitzek@n8n.io>
This commit is contained in:
@@ -2,7 +2,7 @@ import { INSTANCE_MEMBERS, INSTANCE_OWNER, INSTANCE_ADMIN } from '../constants';
|
||||
import { MainSidebar, SettingsSidebar, SettingsUsersPage } from '../pages';
|
||||
import { errorToast, successToast } from '../pages/notifications';
|
||||
import { PersonalSettingsPage } from '../pages/settings-personal';
|
||||
import { getVisibleSelect } from '../utils';
|
||||
import { getVisiblePopper } from '../utils';
|
||||
|
||||
/**
|
||||
* User A - Instance owner
|
||||
@@ -74,8 +74,8 @@ describe('User Management', { disableAutoLogin: true }, () => {
|
||||
// List item for current user should have the `Owner` badge
|
||||
usersSettingsPage.getters
|
||||
.userItem(INSTANCE_OWNER.email)
|
||||
.find('.n8n-badge:contains("Owner")')
|
||||
.should('exist');
|
||||
.find('td:contains("Owner")')
|
||||
.should('be.visible');
|
||||
// Other users list items should contain action pop-up list
|
||||
usersSettingsPage.getters.userActionsToggle(INSTANCE_MEMBERS[0].email).should('exist');
|
||||
usersSettingsPage.getters.userActionsToggle(INSTANCE_MEMBERS[1].email).should('exist');
|
||||
@@ -90,14 +90,14 @@ describe('User Management', { disableAutoLogin: true }, () => {
|
||||
// Change role from Member to Admin
|
||||
usersSettingsPage.getters
|
||||
.userRoleSelect(INSTANCE_MEMBERS[0].email)
|
||||
.find('input')
|
||||
.should('contain.value', 'Member');
|
||||
usersSettingsPage.getters.userRoleSelect(INSTANCE_MEMBERS[0].email).click();
|
||||
getVisibleSelect().find('li').contains('Admin').click();
|
||||
.find('button:contains("Member")')
|
||||
.should('be.visible')
|
||||
.click();
|
||||
getVisiblePopper().find('label').contains('Admin').click();
|
||||
usersSettingsPage.getters
|
||||
.userRoleSelect(INSTANCE_MEMBERS[0].email)
|
||||
.find('input')
|
||||
.should('contain.value', 'Admin');
|
||||
.find('button:contains("Admin")')
|
||||
.should('be.visible');
|
||||
|
||||
usersSettingsPage.actions.loginAndVisit(
|
||||
INSTANCE_MEMBERS[0].email,
|
||||
@@ -108,15 +108,14 @@ describe('User Management', { disableAutoLogin: true }, () => {
|
||||
// Change role from Admin to Member, then back to Admin
|
||||
usersSettingsPage.getters
|
||||
.userRoleSelect(INSTANCE_ADMIN.email)
|
||||
.find('input')
|
||||
.should('contain.value', 'Admin');
|
||||
|
||||
usersSettingsPage.getters.userRoleSelect(INSTANCE_ADMIN.email).click();
|
||||
getVisibleSelect().find('li').contains('Member').click();
|
||||
.find('button:contains("Admin")')
|
||||
.should('be.visible')
|
||||
.click();
|
||||
getVisiblePopper().find('label').contains('Member').click();
|
||||
usersSettingsPage.getters
|
||||
.userRoleSelect(INSTANCE_ADMIN.email)
|
||||
.find('input')
|
||||
.should('contain.value', 'Member');
|
||||
.find('button:contains("Member")')
|
||||
.should('be.visible');
|
||||
|
||||
usersSettingsPage.actions.loginAndVisit(INSTANCE_ADMIN.email, INSTANCE_ADMIN.password, false);
|
||||
usersSettingsPage.actions.loginAndVisit(
|
||||
@@ -125,20 +124,28 @@ describe('User Management', { disableAutoLogin: true }, () => {
|
||||
true,
|
||||
);
|
||||
|
||||
usersSettingsPage.getters.userRoleSelect(INSTANCE_ADMIN.email).click();
|
||||
getVisibleSelect().find('li').contains('Admin').click();
|
||||
usersSettingsPage.getters
|
||||
.userRoleSelect(INSTANCE_ADMIN.email)
|
||||
.find('input')
|
||||
.should('contain.value', 'Admin');
|
||||
.find('button:contains("Member")')
|
||||
.should('be.visible')
|
||||
.click();
|
||||
getVisiblePopper().find('label').contains('Admin').click();
|
||||
usersSettingsPage.getters
|
||||
.userRoleSelect(INSTANCE_ADMIN.email)
|
||||
.find('button:contains("Admin")')
|
||||
.should('be.visible');
|
||||
|
||||
usersSettingsPage.actions.loginAndVisit(INSTANCE_ADMIN.email, INSTANCE_ADMIN.password, true);
|
||||
usersSettingsPage.getters.userRoleSelect(INSTANCE_MEMBERS[0].email).click();
|
||||
getVisibleSelect().find('li').contains('Member').click();
|
||||
usersSettingsPage.getters
|
||||
.userRoleSelect(INSTANCE_MEMBERS[0].email)
|
||||
.find('input')
|
||||
.should('contain.value', 'Member');
|
||||
.find('button:contains("Admin")')
|
||||
.should('be.visible')
|
||||
.click();
|
||||
getVisiblePopper().find('label').contains('Member').click();
|
||||
usersSettingsPage.getters
|
||||
.userRoleSelect(INSTANCE_MEMBERS[0].email)
|
||||
.find('button:contains("Member")')
|
||||
.should('be.visible');
|
||||
|
||||
cy.disableFeature('advancedPermissions');
|
||||
});
|
||||
|
||||
@@ -3,6 +3,7 @@ import { MainSidebar } from './sidebar/main-sidebar';
|
||||
import { SettingsSidebar } from './sidebar/settings-sidebar';
|
||||
import { WorkflowPage } from './workflow';
|
||||
import { WorkflowsPage } from './workflows';
|
||||
import { getVisiblePopper } from '../utils';
|
||||
|
||||
const workflowPage = new WorkflowPage();
|
||||
const workflowsPage = new WorkflowsPage();
|
||||
@@ -25,12 +26,12 @@ export class SettingsUsersPage extends BasePage {
|
||||
inviteButton: () => cy.getByTestId('settings-users-invite-button').last(),
|
||||
inviteUsersModal: () => cy.getByTestId('inviteUser-modal').last(),
|
||||
inviteUsersModalEmailsInput: () => cy.getByTestId('emails').find('input').first(),
|
||||
userListItems: () => cy.get('[data-test-id^="user-list-item"]'),
|
||||
userItem: (email: string) => cy.getByTestId(`user-list-item-${email.toLowerCase()}`),
|
||||
userListItems: () => cy.get('[data-test-id="settings-users-table"] tbody tr'),
|
||||
userItem: (email: string) => this.getters.userListItems().contains(email).closest('tr'),
|
||||
userActionsToggle: (email: string) =>
|
||||
this.getters.userItem(email).find('[data-test-id="action-toggle"]'),
|
||||
userRoleSelect: (email: string) =>
|
||||
this.getters.userItem(email).find('[data-test-id="user-role-select"]'),
|
||||
this.getters.userItem(email).find('[data-test-id="user-role-dropdown"]'),
|
||||
deleteUserAction: () =>
|
||||
cy.getByTestId('action-toggle-dropdown').find('li:contains("Delete"):visible'),
|
||||
confirmDeleteModal: () => cy.getByTestId('deleteUser-modal').last(),
|
||||
@@ -61,8 +62,8 @@ export class SettingsUsersPage extends BasePage {
|
||||
}
|
||||
},
|
||||
opedDeleteDialog: (email: string) => {
|
||||
this.getters.userActionsToggle(email).click();
|
||||
this.getters.deleteUserAction().realClick();
|
||||
this.getters.userRoleSelect(email).find('button').should('be.visible').click();
|
||||
getVisiblePopper().find('span').contains('Remove user').click();
|
||||
this.getters.confirmDeleteModal().should('be.visible');
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user