refactor(editor): Update users list on user settings page (#16244)

Co-authored-by: Andreas Fitzek <andreas.fitzek@n8n.io>
This commit is contained in:
Csaba Tuncsik
2025-07-03 13:57:14 +02:00
committed by GitHub
parent 50d80ee620
commit 19ac32659f
27 changed files with 1659 additions and 446 deletions

View File

@@ -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');
});