refactor: 💡 e2e admin tests - update locators (#2931)

* refactor: 💡 e2e tests - update locators

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17174

* refactor: 💡 addressing comments

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17174

* refactor: 💡 update test for session-recording-aws-ent

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17174
This commit is contained in:
Tony authored and GitHub committed 2025-07-17 15:48:20 -04:00
1 parent 0a2d743ea2
commit b99fce7d55
17 files changed
+120 -125

No files matched your search

@@ -223,15 +223,15 @@ test(
await expect(
page
.getByRole('cell', { name: ldapAccountName })
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('cell', { name: ldapAccountName }) })
.getByRole('cell')
.nth(fullNameIndex),
).toHaveText(ldapUserName);
await expect(
page
.getByRole('cell', { name: ldapAccountName })
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('cell', { name: ldapAccountName }) })
.getByRole('cell')
.nth(emailIndex),
).toHaveText(ldapUserName + '@mail.com');
@@ -265,15 +265,15 @@ test(
await expect(
page
.getByRole('cell', { name: ldapAccountName })
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('cell', { name: ldapAccountName }) })
.getByRole('cell')
.nth(fullNameIndex),
).toHaveText(ldapUserName);
await expect(
page
.getByRole('cell', { name: ldapAccountName })
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('cell', { name: ldapAccountName }) })
.getByRole('cell')
.nth(emailIndex),
).toHaveText(ldapUserName + '@mail.com');
@@ -181,15 +181,15 @@ test(
await expect(
page
.getByRole('cell', { name: userName })
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('cell', { name: userName }) })
.getByRole('cell')
.nth(fullNameIndex),
).toHaveText(userName);
await expect(
page
.getByRole('cell', { name: userName })
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('cell', { name: userName }) })
.getByRole('cell')
.nth(emailIndex),
).toHaveText(email);
@@ -223,15 +223,15 @@ test(
await expect(
page
.getByRole('cell', { name: userName })
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('cell', { name: userName }) })
.getByRole('cell')
.nth(fullNameIndex),
).toHaveText(userName);
await expect(
page
.getByRole('cell', { name: userName })
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('cell', { name: userName }) })
.getByRole('cell')
.nth(emailIndex),
).toHaveText(email);
@@ -69,9 +69,8 @@ test(
// Remove a credential from the target
await page
.getByRole('link', { name: credentialName2 })
.locator('..')
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('link', { name: credentialName2 }) })
.getByRole('button', { name: 'Manage' })
.click();
await page.getByRole('button', { name: 'Remove' }).click();
@@ -92,9 +91,8 @@ test(
// Remove a credential from the target
await page
.getByRole('link', { name: credentialName2 })
.locator('..')
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('link', { name: credentialName2 }) })
.getByRole('button', { name: 'Manage' })
.click();
await page.getByRole('button', { name: 'Remove' }).click();
@@ -303,9 +303,8 @@ test(
// Remove the host source from the target
await page
.getByRole('link', { name: credentialName2 })
.locator('..')
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('link', { name: credentialName2 }) })
.getByRole('button', { name: 'Manage' })
.click();
await page.getByRole('button', { name: 'Remove' }).click();
@@ -172,9 +172,8 @@ test.describe('AWS', () => {
// Remove the host source from the target
await page
.getByRole('link', { name: newHostSetName })
.locator('..')
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('link', { name: newHostSetName }) })
.getByRole('button', { name: 'Manage' })
.click();
await page.getByRole('button', { name: 'Remove' }).click();
@@ -172,9 +172,8 @@ test.describe('AWS', () => {
// Remove the host source from the target
await page
.getByRole('link', { name: newHostSetName })
.locator('..')
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('link', { name: newHostSetName }) })
.getByRole('button', { name: 'Manage' })
.click();
await page.getByRole('button', { name: 'Remove' }).click();
@@ -65,7 +65,12 @@ test(
await page
.getByRole('link', { name: `Back to ${orgName}`, exact: true })
.click();
await page.getByRole('link', { name: 'Orgs', exact: true }).click();
await page
.getByRole('link', { name: 'Back to Global', exact: true })
.click();
await page
.getByRole('link', { name: 'Storage Buckets', exact: true })
.click();
const storageBucketsPage = new StorageBucketsPage(page);
const storageBucketName = await storageBucketsPage.createStorageBucketAws(
orgName,
@@ -113,14 +118,9 @@ test(
await page
.getByRole('link', { name: `Back to ${orgName}`, exact: true })
.click();
await page.getByRole('link', { name: 'Orgs', exact: true }).click();
await expect(page.getByRole('heading', { name: 'Orgs' })).toBeVisible();
await page.getByRole('link', { name: orgName }).click();
await expect(
page
.getByRole('navigation', { name: 'breadcrumbs' })
.getByText(orgName),
).toBeVisible();
await page
.getByRole('link', { name: 'Storage Policies', exact: true })
.click();
const storagePoliciesPage = new StoragePoliciesPage(page);
policyName = await storagePoliciesPage.createStoragePolicy();
await orgsPage.attachStoragePolicy(policyName);
@@ -141,8 +141,8 @@ test(
const sessionsPage = new SessionsPage(page);
await sessionsPage.waitForSessionToBeVisible(targetName);
await page
.getByRole('cell', { name: targetName })
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('cell', { name: targetName }) })
.getByRole('button', { name: 'Cancel' })
.click();
await expect(
@@ -155,7 +155,9 @@ test(
await page
.getByRole('link', { name: `Back to ${orgName}`, exact: true })
.click();
await page.getByRole('link', { name: 'Orgs', exact: true }).click();
await page
.getByRole('link', { name: 'Back to Global', exact: true })
.click();
await page
.getByRole('navigation', { name: 'Application local navigation' })
.getByRole('link', { name: 'Session Recordings', exact: true })
@@ -165,22 +167,14 @@ test(
.getByRole('link', { name: 'View' })
.click();
await page
.getByRole('cell', { name: 'Channel 1' })
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('cell', { name: 'Channel 1' }) })
.getByRole('link', { name: 'Play' })
.click();
await page.locator('div.session-recording-player').hover();
await page.locator('.ap-playback-button').click();
// Edit storage policy: do not protect from deletion
await page.getByRole('link', { name: 'Orgs', exact: true }).click();
await expect(page.getByRole('heading', { name: 'Orgs' })).toBeVisible();
await page.getByRole('link', { name: orgName }).click();
await expect(
page
.getByRole('navigation', { name: 'breadcrumbs' })
.getByText(orgName),
).toBeVisible();
await page
.getByRole('link', { name: 'Storage Policies', exact: true })
.click();
@@ -199,7 +193,9 @@ test(
await page.getByRole('button', { name: 'Dismiss' }).click();
// Re-apply storage policy to the session recording and delete
await page.getByRole('link', { name: 'Orgs', exact: true }).click();
await page
.getByRole('link', { name: 'Back to Global', exact: true })
.click();
await page
.getByRole('link', { name: 'Session Recordings', exact: true })
.click();
@@ -212,7 +208,9 @@ test(
await sessionRecordingsPage.deleteResource();
// Detach storage bucket from target
await page.getByRole('link', { name: 'Orgs', exact: true }).click();
await page
.getByRole('link', { name: 'Back to Global', exact: true })
.click();
await expect(page.getByRole('heading', { name: 'Orgs' })).toBeVisible();
await page.getByRole('link', { name: orgName }).click();
await page.getByRole('link', { name: projectName }).click();
@@ -67,7 +67,12 @@ test(
await page
.getByRole('link', { name: `Back to ${orgName}`, exact: true })
.click();
await page.getByRole('link', { name: 'Orgs', exact: true }).click();
await page
.getByRole('link', { name: 'Back to Global', exact: true })
.click();
await page
.getByRole('link', { name: 'Storage Buckets', exact: true })
.click();
const storageBucketsPage = new StorageBucketsPage(page);
const storageBucketName =
await storageBucketsPage.createStorageBucketMinio(
@@ -121,14 +126,9 @@ test(
await page
.getByRole('link', { name: `Back to ${orgName}`, exact: true })
.click();
await page.getByRole('link', { name: 'Orgs', exact: true }).click();
await expect(page.getByRole('heading', { name: 'Orgs' })).toBeVisible();
await page.getByRole('link', { name: orgName }).click();
await expect(
page
.getByRole('navigation', { name: 'breadcrumbs' })
.getByText(orgName),
).toBeVisible();
await page
.getByRole('link', { name: 'Storage Policies', exact: true })
.click();
const storagePoliciesPage = new StoragePoliciesPage(page);
policyName = await storagePoliciesPage.createStoragePolicy();
await orgsPage.attachStoragePolicy(policyName);
@@ -149,8 +149,8 @@ test(
const sessionsPage = new SessionsPage(page);
await sessionsPage.waitForSessionToBeVisible(targetName);
await page
.getByRole('cell', { name: targetName })
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('cell', { name: targetName }) })
.getByRole('button', { name: 'Cancel' })
.click();
await expect(
@@ -163,7 +163,9 @@ test(
await page
.getByRole('link', { name: `Back to ${orgName}`, exact: true })
.click();
await page.getByRole('link', { name: 'Orgs', exact: true }).click();
await page
.getByRole('link', { name: 'Back to Global', exact: true })
.click();
await page
.getByRole('navigation', { name: 'Application local navigation' })
.getByRole('link', { name: 'Session Recordings', exact: true })
@@ -173,22 +175,14 @@ test(
.getByRole('link', { name: 'View' })
.click();
await page
.getByRole('cell', { name: 'Channel 1' })
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('cell', { name: 'Channel 1' }) })
.getByRole('link', { name: 'Play' })
.click();
await page.locator('div.session-recording-player').hover();
await page.locator('.ap-playback-button').click();
// Edit storage policy: do not protect from deletion
await page.getByRole('link', { name: 'Orgs', exact: true }).click();
await expect(page.getByRole('heading', { name: 'Orgs' })).toBeVisible();
await page.getByRole('link', { name: orgName }).click();
await expect(
page
.getByRole('navigation', { name: 'breadcrumbs' })
.getByText(orgName),
).toBeVisible();
await page
.getByRole('link', { name: 'Storage Policies', exact: true })
.click();
@@ -207,7 +201,9 @@ test(
await page.getByRole('button', { name: 'Dismiss' }).click();
// Re-apply storage policy to the session recording and delete
await page.getByRole('link', { name: 'Orgs', exact: true }).click();
await page
.getByRole('link', { name: 'Back to Global', exact: true })
.click();
await page
.getByRole('link', { name: 'Session Recordings', exact: true })
.click();
@@ -220,7 +216,9 @@ test(
await sessionRecordingsPage.deleteResource();
// Detach storage bucket from target
await page.getByRole('link', { name: 'Orgs', exact: true }).click();
await page
.getByRole('link', { name: 'Back to Global', exact: true })
.click();
await expect(page.getByRole('heading', { name: 'Orgs' })).toBeVisible();
await page.getByRole('link', { name: orgName }).click();
await page.getByRole('link', { name: projectName }).click();
+8 -9
View File
@@ -69,8 +69,8 @@ test(
const sessionsPage = new SessionsPage(page);
await sessionsPage.waitForSessionToBeVisible(targetName);
await page
.getByRole('cell', { name: targetName })
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('cell', { name: targetName }) })
.getByRole('button', { name: 'Cancel' })
.click();
} finally {
@@ -143,8 +143,8 @@ test(
const sessionsPage = new SessionsPage(page);
await sessionsPage.waitForSessionToBeVisible(targetName);
await page
.getByRole('cell', { name: targetName })
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('cell', { name: targetName }) })
.getByRole('button', { name: 'Cancel' })
.click();
} finally {
@@ -200,9 +200,8 @@ test(
// Add/Remove another host source
await targetsPage.addHostSourceToTarget(hostSetName2);
await page
.getByRole('link', { name: hostSetName2 })
.locator('..')
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('link', { name: hostSetName2 }) })
.getByRole('button', { name: 'Manage' })
.click();
await page.getByRole('button', { name: 'Remove' }).click();
@@ -245,8 +244,8 @@ test(
const sessionsPage = new SessionsPage(page);
await sessionsPage.waitForSessionToBeVisible(targetName);
await page
.getByRole('cell', { name: targetName })
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('cell', { name: targetName }) })
.getByRole('button', { name: 'Cancel' })
.click();
} finally {
+12 -6
View File
@@ -88,8 +88,8 @@ test(
const sessionsPage = new SessionsPage(page);
await sessionsPage.waitForSessionToBeVisible(targetName);
await page
.getByRole('cell', { name: targetName })
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('cell', { name: targetName }) })
.getByRole('button', { name: 'Cancel' })
.click();
} finally {
@@ -155,8 +155,8 @@ test(
const sessionsPage = new SessionsPage(page);
await sessionsPage.waitForSessionToBeVisible(targetName);
await page
.getByRole('cell', { name: targetName })
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('cell', { name: targetName }) })
.getByRole('button', { name: 'Cancel' })
.click();
} finally {
@@ -230,10 +230,16 @@ test(
).toBeVisible();
await expect(page.getByText('"dev" in "/tags/type"')).toBeVisible();
await page.locator('textarea').click({ force: true });
await page
.locator('.CodeMirror')
.getByRole('textbox')
.click({ force: true });
await page.keyboard.press('Meta+A');
await page.keyboard.press('Backspace');
await page.locator('textarea').fill('"prod" in "/tags/type"');
await page
.locator('.CodeMirror')
.getByRole('textbox')
.fill('"prod" in "/tags/type"');
await page.getByRole('button', { name: 'Save' }).click();
const basePage = new BasePage(page);
await basePage.dismissSuccessAlert();
+4 -6
View File
@@ -166,9 +166,8 @@ test(
).toHaveText('config');
await expect(
page
.getByRole('table')
.getByRole('cell', { name: tagKey })
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('cell', { name: tagKey }) })
.getByRole('cell', { name: tagValue }),
).toBeVisible();
@@ -178,9 +177,8 @@ test(
await workersPage.editTag(tagKey, newTagKey, newTagValue);
await expect(
page
.getByRole('table')
.getByRole('cell', { name: newTagKey })
.locator('..')
.getByRole('row')
.filter({ has: page.getByRole('cell', { name: newTagKey }) })
.getByRole('cell', { name: newTagValue }),
).toBeVisible();