test(e2e): Update ldap test to log in with ldap account (#2314)
This commit is contained in:
1 parent
0a9a6c5a67
commit
28e65dbf4f
3 files changed
+63
-13
No files matched your search
@@ -796,19 +796,24 @@ exports.createUser = async (page) => {
|
||||
};
|
||||
|
||||
/**
|
||||
* Uses the UI to add the first available account to a user.
|
||||
* Uses the UI to add an account to a user
|
||||
* Assumes you have selected the desired user.
|
||||
* Assumes you have created new account.
|
||||
* @param {Page} page Playwright page object
|
||||
* @param {string} loginName Login name of the account
|
||||
*/
|
||||
exports.addAccountToUser = async (page) => {
|
||||
exports.addAccountToUser = async (page, loginName) => {
|
||||
await page.getByRole('link', { name: 'Accounts', exact: true }).click();
|
||||
await page
|
||||
.getByRole('article')
|
||||
.getByRole('link', { name: 'Add Accounts', exact: true })
|
||||
.click();
|
||||
await page
|
||||
.getByRole('cell', { name: loginName })
|
||||
.locator('..')
|
||||
.getByRole('checkbox')
|
||||
.click({ force: true });
|
||||
|
||||
await page.getByRole('checkbox').click();
|
||||
await page.getByRole('button', { name: 'Add Accounts', exact: true }).click();
|
||||
await expect(
|
||||
page.getByRole('alert').getByText('Success', { exact: true }),
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
/* eslint-disable no-undef */
|
||||
const { test, expect } = require('@playwright/test');
|
||||
const { execSync } = require('child_process');
|
||||
const { checkEnv, authenticatedState } = require('../helpers/general');
|
||||
const { checkEnv } = require('../helpers/general');
|
||||
const { nanoid } = require('nanoid');
|
||||
|
||||
const {
|
||||
@@ -15,13 +15,14 @@ const {
|
||||
deleteOrgCli,
|
||||
} = require('../helpers/boundary-cli');
|
||||
const {
|
||||
addAccountToUser,
|
||||
createPasswordAuthMethod,
|
||||
createOrg,
|
||||
createRole,
|
||||
createUser,
|
||||
addPrincipalToRole,
|
||||
} = require('../helpers/boundary-ui');
|
||||
|
||||
test.use({ storageState: authenticatedState });
|
||||
|
||||
test.beforeAll(async () => {
|
||||
await checkEnv([
|
||||
'E2E_LDAP_ADDR',
|
||||
@@ -39,8 +40,25 @@ test.beforeAll(async () => {
|
||||
test('Set up LDAP auth method @ce @ent @docker', async ({ page }) => {
|
||||
await page.goto('/');
|
||||
let orgName;
|
||||
let connect;
|
||||
try {
|
||||
// Log in
|
||||
await page
|
||||
.getByLabel('Login Name')
|
||||
.fill(process.env.E2E_PASSWORD_ADMIN_LOGIN_NAME);
|
||||
await page
|
||||
.getByLabel('Password', { exact: true })
|
||||
.fill(process.env.E2E_PASSWORD_ADMIN_PASSWORD);
|
||||
await page.getByRole('button', { name: 'Sign In' }).click();
|
||||
await expect(
|
||||
page.getByRole('navigation', { name: 'General' }),
|
||||
).toBeVisible();
|
||||
await expect(
|
||||
page.getByText(process.env.E2E_PASSWORD_ADMIN_LOGIN_NAME),
|
||||
).toBeEnabled();
|
||||
await expect(
|
||||
page.getByRole('navigation', { name: 'breadcrumbs' }).getByText('Orgs'),
|
||||
).toBeVisible();
|
||||
|
||||
// Create an LDAP auth method
|
||||
orgName = await createOrg(page);
|
||||
await page
|
||||
@@ -50,7 +68,6 @@ test('Set up LDAP auth method @ce @ent @docker', async ({ page }) => {
|
||||
await page.getByRole('button', { name: 'New' }).click();
|
||||
await page.getByRole('link', { name: 'LDAP' }).click();
|
||||
|
||||
// Fill out the form
|
||||
const ldapAuthMethodName = 'LDAP ' + nanoid();
|
||||
await page.getByLabel('Name').fill(ldapAuthMethodName);
|
||||
await page.getByLabel('Description').fill('LDAP Auth Method');
|
||||
@@ -124,6 +141,38 @@ test('Set up LDAP auth method @ce @ent @docker', async ({ page }) => {
|
||||
// Create a role and add LDAP managed group to role
|
||||
await createRole(page);
|
||||
await addPrincipalToRole(page, ldapManagedGroupName);
|
||||
|
||||
// Create a user and attach LDAP account to it
|
||||
await createUser(page);
|
||||
await addAccountToUser(page, process.env.E2E_LDAP_USER_NAME);
|
||||
|
||||
// Create a second auth method so that there's multiple auth methods on the
|
||||
// login screen
|
||||
await createPasswordAuthMethod(page);
|
||||
|
||||
// Log out
|
||||
await page.getByText(process.env.E2E_PASSWORD_ADMIN_LOGIN_NAME).click();
|
||||
await page.getByRole('button', { name: 'Sign Out' }).click();
|
||||
await expect(page.getByRole('button', { name: 'Sign In' })).toBeVisible();
|
||||
|
||||
// Log in using ldap account
|
||||
await page.getByText('Choose a different scope').click();
|
||||
await page.getByRole('link', { name: orgName }).click();
|
||||
await page.getByRole('link', { name: ldapAuthMethodName }).click();
|
||||
await page.getByLabel('Login Name').fill(process.env.E2E_LDAP_USER_NAME);
|
||||
await page
|
||||
.getByLabel('Password', { exact: true })
|
||||
.fill(process.env.E2E_LDAP_USER_PASSWORD);
|
||||
await page.getByRole('button', { name: 'Sign In' }).click();
|
||||
await expect(
|
||||
page.getByRole('navigation', { name: 'General' }),
|
||||
).toBeVisible();
|
||||
await expect(page.getByText(process.env.E2E_LDAP_USER_NAME)).toBeEnabled();
|
||||
await expect(
|
||||
page
|
||||
.getByRole('navigation', { name: 'breadcrumbs' })
|
||||
.getByText('Projects'),
|
||||
).toBeVisible();
|
||||
} finally {
|
||||
await authenticateBoundaryCli(
|
||||
process.env.BOUNDARY_ADDR,
|
||||
@@ -136,9 +185,5 @@ test('Set up LDAP auth method @ce @ent @docker', async ({ page }) => {
|
||||
if (org) {
|
||||
await deleteOrgCli(org.id);
|
||||
}
|
||||
// End `boundary connect` process
|
||||
if (connect) {
|
||||
connect.kill('SIGTERM');
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -57,7 +57,7 @@ test('Verify new auth-method can be created and assigned to users @ce @ent @aws
|
||||
await createPasswordAccount(page, username, password);
|
||||
await makeAuthMethodPrimary(page);
|
||||
await createUser(page);
|
||||
await addAccountToUser(page);
|
||||
await addAccountToUser(page, username);
|
||||
|
||||
// Log out
|
||||
await page.getByText(process.env.E2E_PASSWORD_ADMIN_LOGIN_NAME).click();
|
||||
|
||||
Reference in new issue
Block a user