diff --git a/ui/admin/tests/e2e/helpers/boundary-ui.js b/ui/admin/tests/e2e/helpers/boundary-ui.js index 6dc308d0a..f02bc4675 100644 --- a/ui/admin/tests/e2e/helpers/boundary-ui.js +++ b/ui/admin/tests/e2e/helpers/boundary-ui.js @@ -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') diff --git a/ui/admin/tests/e2e/tests/auth-method-password.spec.js b/ui/admin/tests/e2e/tests/auth-method-password.spec.js index 17e150761..b0786c7d2 100644 --- a/ui/admin/tests/e2e/tests/auth-method-password.spec.js +++ b/ui/admin/tests/e2e/tests/auth-method-password.spec.js @@ -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' }) diff --git a/ui/admin/tests/e2e/tests/credential-store-static-ent.spec.js b/ui/admin/tests/e2e/tests/credential-store-static-ent.spec.js index a1c3228cb..dfee760e4 100644 --- a/ui/admin/tests/e2e/tests/credential-store-static-ent.spec.js +++ b/ui/admin/tests/e2e/tests/credential-store-static-ent.spec.js @@ -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(); diff --git a/ui/admin/tests/e2e/tests/credential-store-static.spec.js b/ui/admin/tests/e2e/tests/credential-store-static.spec.js index 09cdee92d..c39ca9830 100644 --- a/ui/admin/tests/e2e/tests/credential-store-static.spec.js +++ b/ui/admin/tests/e2e/tests/credential-store-static.spec.js @@ -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(); diff --git a/ui/admin/tests/e2e/tests/session-recording-aws-ent.spec.js b/ui/admin/tests/e2e/tests/session-recording-aws-ent.spec.js index de163ac8d..bdd598482 100644 --- a/ui/admin/tests/e2e/tests/session-recording-aws-ent.spec.js +++ b/ui/admin/tests/e2e/tests/session-recording-aws-ent.spec.js @@ -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(); diff --git a/ui/admin/tests/e2e/tests/session-recording-minio-ent.spec.js b/ui/admin/tests/e2e/tests/session-recording-minio-ent.spec.js index 00fa9f737..4e20342a8 100644 --- a/ui/admin/tests/e2e/tests/session-recording-minio-ent.spec.js +++ b/ui/admin/tests/e2e/tests/session-recording-minio-ent.spec.js @@ -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();