test(e2e): Fix flakiness when selecting org links (#2348)
* test(e2e): Fix flakiness when selecting links Some links exist on both the "Global" and "Org" scope (i.e. Storage Policies, Auth Methods). There was some flakiness observed where the test intends to select the "Org" variant of the link, but the test moves too quickly and selects the "Global" variant instead. This commit ensures that the Org page has loaded after clicking the Org link before trying to navigate to the next thing. * test(e2e): Address flake due to OK conflict * test(e2e): Address flake due to OK conflict part 2 * CR: Fix more race conditions
This commit is contained in:
1 parent
11009d6f33
commit
e6642959be
6 files changed
+50
-4
No files matched your search
@@ -240,7 +240,21 @@ exports.createVaultCredentialStore = async (page, vaultAddr, clientToken) => {
|
||||
*/
|
||||
exports.createStaticCredentialKeyPair = async (page, username, keyPath) => {
|
||||
const credentialName = 'Credential ' + nanoid();
|
||||
await page.getByRole('link', { name: 'Credentials', exact: true }).click();
|
||||
|
||||
const credentialsBreadcrumbIsVisible = await page
|
||||
.getByRole('breadcrumbs', { name: 'Credentials' })
|
||||
.isVisible();
|
||||
if (credentialsBreadcrumbIsVisible) {
|
||||
await page.getByRole('breadcrumbs', { name: 'Credentials' }).click();
|
||||
} else {
|
||||
await page.getByRole('link', { name: 'Credentials', exact: true }).click();
|
||||
}
|
||||
|
||||
await expect(
|
||||
page
|
||||
.getByRole('navigation', { name: 'breadcrumbs' })
|
||||
.getByText('Credentials'),
|
||||
).toBeVisible();
|
||||
|
||||
const newButtonIsVisible = await page
|
||||
.getByRole('link', { name: 'New', exact: true })
|
||||
@@ -299,6 +313,12 @@ exports.createStaticCredentialUsernamePassword = async (
|
||||
await page.getByRole('link', { name: 'Credentials', exact: true }).click();
|
||||
}
|
||||
|
||||
await expect(
|
||||
page
|
||||
.getByRole('navigation', { name: 'breadcrumbs' })
|
||||
.getByText('Credentials'),
|
||||
).toBeVisible();
|
||||
|
||||
const newButtonIsVisible = await page
|
||||
.getByRole('link', { name: 'New', exact: true })
|
||||
.isVisible();
|
||||
@@ -750,6 +770,11 @@ exports.addBrokeredCredentialsToTarget = async (
|
||||
await page
|
||||
.getByRole('link', { name: 'Brokered Credentials', exact: true })
|
||||
.click();
|
||||
await expect(
|
||||
page
|
||||
.getByRole('navigation', { name: 'breadcrumbs' })
|
||||
.getByText('Brokered Credentials'),
|
||||
).toBeVisible();
|
||||
|
||||
const addBrokeredCredentialsButtonIsVisible = await page
|
||||
.getByRole('article')
|
||||
@@ -796,6 +821,7 @@ exports.addInjectedCredentialsToTarget = async (
|
||||
.getByRole('navigation', { name: 'Resources' })
|
||||
.getByRole('link', { name: 'Targets' })
|
||||
.click();
|
||||
await expect(page.getByRole('heading', { name: 'Targets' })).toBeVisible();
|
||||
await page.getByRole('link', { name: targetName }).click();
|
||||
await page
|
||||
.getByRole('link', {
|
||||
@@ -803,6 +829,11 @@ exports.addInjectedCredentialsToTarget = async (
|
||||
exact: true,
|
||||
})
|
||||
.click();
|
||||
await expect(
|
||||
page
|
||||
.getByRole('navigation', { name: 'breadcrumbs' })
|
||||
.getByText('Injected Application Credentials'),
|
||||
).toBeVisible();
|
||||
|
||||
const addInjectedCredentialsButtonIsVisible = await page
|
||||
.getByRole('article')
|
||||
|
||||
@@ -101,6 +101,9 @@ test('Verify new auth-method can be created and assigned to users @ce @ent @aws
|
||||
.getByRole('link', { name: 'Orgs' })
|
||||
.click();
|
||||
await page.getByRole('link', { name: orgName }).click();
|
||||
await expect(
|
||||
page.getByRole('navigation', { name: 'breadcrumbs' }).getByText(orgName),
|
||||
).toBeVisible();
|
||||
await page
|
||||
.getByRole('navigation', { name: 'IAM' })
|
||||
.getByRole('link', { name: 'Auth Methods' })
|
||||
|
||||
@@ -72,7 +72,7 @@ test('Multiple Credential Stores (ENT) @ent @aws @docker', async ({ page }) => {
|
||||
.getByRole('button', { name: 'Manage' })
|
||||
.click();
|
||||
await page.getByRole('button', { name: 'Remove' }).click();
|
||||
await page.getByRole('button', { name: 'OK' }).click();
|
||||
await page.getByRole('button', { name: 'OK', exact: true }).click();
|
||||
await expect(
|
||||
page.getByRole('alert').getByText('Success', { exact: true }),
|
||||
).toBeVisible();
|
||||
@@ -89,7 +89,7 @@ test('Multiple Credential Stores (ENT) @ent @aws @docker', async ({ page }) => {
|
||||
.getByRole('button', { name: 'Manage' })
|
||||
.click();
|
||||
await page.getByRole('button', { name: 'Remove' }).click();
|
||||
await page.getByRole('button', { name: 'OK' }).click();
|
||||
await page.getByRole('button', { name: 'OK', exact: true }).click();
|
||||
await expect(
|
||||
page.getByRole('alert').getByText('Success', { exact: true }),
|
||||
).toBeVisible();
|
||||
|
||||
@@ -221,7 +221,7 @@ test('Multiple Credential Stores (CE) @ce @aws @docker', async ({ page }) => {
|
||||
.getByRole('button', { name: 'Manage' })
|
||||
.click();
|
||||
await page.getByRole('button', { name: 'Remove' }).click();
|
||||
await page.getByRole('button', { name: 'OK' }).click();
|
||||
await page.getByRole('button', { name: 'OK', exact: true }).click();
|
||||
await expect(
|
||||
page.getByRole('alert').getByText('Success', { exact: true }),
|
||||
).toBeVisible();
|
||||
|
||||
@@ -120,6 +120,9 @@ test('Session Recording Test (AWS) @ent @aws', async ({ page }) => {
|
||||
// Create storage policy in org scope: keep session recordings forever
|
||||
await page.getByRole('link', { name: 'Orgs', exact: true }).click();
|
||||
await page.getByRole('link', { name: orgName }).click();
|
||||
await expect(
|
||||
page.getByRole('navigation', { name: 'breadcrumbs' }).getByText(orgName),
|
||||
).toBeVisible();
|
||||
const policyName = await createStoragePolicy(page);
|
||||
await attachStoragePolicy(page, policyName);
|
||||
|
||||
@@ -184,6 +187,9 @@ test('Session Recording Test (AWS) @ent @aws', async ({ page }) => {
|
||||
)[0];
|
||||
await page.getByRole('link', { name: 'Orgs', exact: true }).click();
|
||||
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();
|
||||
|
||||
@@ -122,6 +122,9 @@ test('Session Recording Test (MinIO) @ent @docker', async ({ page }) => {
|
||||
// Create storage policy in org scope: keep session recordings forever
|
||||
await page.getByRole('link', { name: 'Orgs', exact: true }).click();
|
||||
await page.getByRole('link', { name: orgName }).click();
|
||||
await expect(
|
||||
page.getByRole('navigation', { name: 'breadcrumbs' }).getByText(orgName),
|
||||
).toBeVisible();
|
||||
const policyName = await createStoragePolicy(page);
|
||||
await attachStoragePolicy(page, policyName);
|
||||
|
||||
@@ -186,6 +189,9 @@ test('Session Recording Test (MinIO) @ent @docker', async ({ page }) => {
|
||||
)[0];
|
||||
await page.getByRole('link', { name: 'Orgs', exact: true }).click();
|
||||
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();
|
||||
|
||||
Reference in new issue
Block a user