mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-11-15 10:22:34 +00:00
Playwright: Fix users.spec default persona test (#23820)
* Playwright: Fix users.spec default persona test * minor fix * minor fix * minor fix
This commit is contained in:
parent
50dbe6fe44
commit
a3e5190f69
@ -535,6 +535,8 @@ test.describe('User Profile Feed Interactions', () => {
|
|||||||
|
|
||||||
test.describe('User Profile Dropdown Persona Interactions', () => {
|
test.describe('User Profile Dropdown Persona Interactions', () => {
|
||||||
test.beforeAll('Prerequisites', async ({ adminPage }) => {
|
test.beforeAll('Prerequisites', async ({ adminPage }) => {
|
||||||
|
test.slow(true);
|
||||||
|
|
||||||
// First, add personas to the user profile for testing
|
// First, add personas to the user profile for testing
|
||||||
await visitOwnProfilePage(adminPage);
|
await visitOwnProfilePage(adminPage);
|
||||||
await adminPage.waitForSelector('[data-testid="persona-details-card"]');
|
await adminPage.waitForSelector('[data-testid="persona-details-card"]');
|
||||||
@ -707,7 +709,7 @@ test.describe('User Profile Dropdown Persona Interactions', () => {
|
|||||||
.allTextContents();
|
.allTextContents();
|
||||||
|
|
||||||
// Verify first one contains the default persona name
|
// Verify first one contains the default persona name
|
||||||
expect(personaTexts[0]).toContain(persona1.data.displayName);
|
expect(personaTexts[0]).toContain(persona1.responseData.displayName);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -879,7 +881,7 @@ test.describe('User Profile Dropdown Persona Interactions', () => {
|
|||||||
.locator('.ant-typography')
|
.locator('.ant-typography')
|
||||||
.textContent();
|
.textContent();
|
||||||
|
|
||||||
expect(newDefaultPersonaText).toContain(persona2.data.displayName);
|
expect(newDefaultPersonaText).toContain(persona2.responseData.displayName);
|
||||||
expect(newDefaultPersonaText).not.toBe(originalDefaultPersonaText);
|
expect(newDefaultPersonaText).not.toBe(originalDefaultPersonaText);
|
||||||
|
|
||||||
await expect(
|
await expect(
|
||||||
@ -950,10 +952,43 @@ test.describe('User Profile Dropdown Persona Interactions', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
test.describe.serial('User Profile Persona Interactions', () => {
|
test.describe('User Profile Persona Interactions', () => {
|
||||||
|
test.beforeEach(async ({ browser }) => {
|
||||||
|
const { apiContext, afterAction } = await performAdminLogin(browser);
|
||||||
|
|
||||||
|
// Patch admin user to add personas
|
||||||
|
await adminUser.patch({
|
||||||
|
apiContext,
|
||||||
|
patchData: [
|
||||||
|
{
|
||||||
|
op: 'add',
|
||||||
|
path: '/personas',
|
||||||
|
value: [
|
||||||
|
{
|
||||||
|
id: persona1.responseData.id,
|
||||||
|
type: 'persona',
|
||||||
|
name: persona1.responseData.name,
|
||||||
|
fullyQualifiedName: persona1.responseData.fullyQualifiedName,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: persona2.responseData.id,
|
||||||
|
type: 'persona',
|
||||||
|
name: persona2.responseData.name,
|
||||||
|
fullyQualifiedName: persona2.responseData.fullyQualifiedName,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
await afterAction();
|
||||||
|
});
|
||||||
|
|
||||||
test('Should add, remove, and navigate to persona pages for Personas section', async ({
|
test('Should add, remove, and navigate to persona pages for Personas section', async ({
|
||||||
adminPage,
|
adminPage,
|
||||||
}) => {
|
}) => {
|
||||||
|
test.slow(true);
|
||||||
|
|
||||||
await redirectToHomePage(adminPage);
|
await redirectToHomePage(adminPage);
|
||||||
await visitOwnProfilePage(adminPage);
|
await visitOwnProfilePage(adminPage);
|
||||||
|
|
||||||
@ -1024,50 +1059,14 @@ test.describe.serial('User Profile Persona Interactions', () => {
|
|||||||
test('Should add, remove, and navigate to persona pages for Default Persona section', async ({
|
test('Should add, remove, and navigate to persona pages for Default Persona section', async ({
|
||||||
adminPage,
|
adminPage,
|
||||||
}) => {
|
}) => {
|
||||||
|
test.slow(true);
|
||||||
|
|
||||||
await redirectToHomePage(adminPage);
|
await redirectToHomePage(adminPage);
|
||||||
await visitOwnProfilePage(adminPage);
|
await visitOwnProfilePage(adminPage);
|
||||||
|
|
||||||
// Wait for the persona card to be visible
|
// Wait for the persona card to be visible
|
||||||
await adminPage.waitForSelector('[data-testid="persona-details-card"]');
|
await adminPage.waitForSelector('[data-testid="persona-details-card"]');
|
||||||
|
|
||||||
// First, add some personas to the user so we can select a default persona
|
|
||||||
await test.step('Add personas to user profile first', async () => {
|
|
||||||
// Click edit button for Personas section (regular personas, not default)
|
|
||||||
await adminPage
|
|
||||||
.locator('[data-testid="edit-user-persona"]')
|
|
||||||
.first()
|
|
||||||
.click();
|
|
||||||
|
|
||||||
// Wait for persona popover and select multiple personas
|
|
||||||
await adminPage.waitForSelector('[data-testid="persona-select-list"]');
|
|
||||||
await adminPage.locator('[data-testid="persona-select-list"]').click();
|
|
||||||
|
|
||||||
// Wait for dropdown to open and options to be visible
|
|
||||||
await adminPage.waitForSelector('.ant-select-dropdown', {
|
|
||||||
state: 'visible',
|
|
||||||
});
|
|
||||||
|
|
||||||
// Select multiple personas - try test IDs first, fallback to role selectors
|
|
||||||
const persona1OptionTestId = adminPage.getByTestId(
|
|
||||||
`${persona1.data.displayName}-option`
|
|
||||||
);
|
|
||||||
|
|
||||||
await persona1OptionTestId.click();
|
|
||||||
|
|
||||||
const persona2OptionTestId = adminPage.getByTestId(
|
|
||||||
`${persona2.data.displayName}-option`
|
|
||||||
);
|
|
||||||
|
|
||||||
await persona2OptionTestId.click();
|
|
||||||
|
|
||||||
const personaEditResponse = adminPage.waitForResponse('/api/v1/users/*');
|
|
||||||
// Save the changes
|
|
||||||
await adminPage
|
|
||||||
.locator('[data-testid="user-profile-persona-edit-save"]')
|
|
||||||
.click();
|
|
||||||
await personaEditResponse;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Test adding default persona
|
// Test adding default persona
|
||||||
await test.step('Add default persona to user profile', async () => {
|
await test.step('Add default persona to user profile', async () => {
|
||||||
// Click edit button for Default Persona section using specific test ID
|
// Click edit button for Default Persona section using specific test ID
|
||||||
@ -1093,7 +1092,7 @@ test.describe.serial('User Profile Persona Interactions', () => {
|
|||||||
|
|
||||||
// Select specific persona for default - try test ID first, fallback to role selector
|
// Select specific persona for default - try test ID first, fallback to role selector
|
||||||
const defaultPersonaOptionTestId = adminPage.getByTestId(
|
const defaultPersonaOptionTestId = adminPage.getByTestId(
|
||||||
`${persona1.data.displayName}-option`
|
`${persona1.responseData.displayName}-option`
|
||||||
);
|
);
|
||||||
|
|
||||||
await defaultPersonaOptionTestId.click();
|
await defaultPersonaOptionTestId.click();
|
||||||
@ -1109,7 +1108,7 @@ test.describe.serial('User Profile Persona Interactions', () => {
|
|||||||
// Check that success notification appears with correct message
|
// Check that success notification appears with correct message
|
||||||
await toastNotification(
|
await toastNotification(
|
||||||
adminPage,
|
adminPage,
|
||||||
`Your Default Persona changed to ${persona1.data.displayName}`
|
`Your Default Persona changed to ${persona1.responseData.displayName}`
|
||||||
);
|
);
|
||||||
|
|
||||||
await adminPage.waitForSelector(
|
await adminPage.waitForSelector(
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user