test(e2e): Fixes for 0.16.0 (#2258)

This commit is contained in:
Michael Li authored and GitHub committed 2024-04-22 10:39:53 -04:00
1 parent 536ebc1c0f
commit 20f8c99013
5 files changed
+39 -37

No files matched your search

+1 -1
View File
@@ -626,7 +626,7 @@ exports.waitForSessionRecordingCli = async (storageBucketId) => {
do {
i = i + 1;
const sessionRecordings = JSON.parse(
execSync('boundary session-recordings list -format json'),
execSync('boundary session-recordings list --recursive -format json'),
);
filteredSessionRecording = sessionRecordings.items.filter(
(obj) =>
+19 -10
View File
@@ -554,6 +554,9 @@ exports.waitForSessionToBeVisible = async (page, targetName) => {
.getByRole('navigation', { name: 'Resources' })
.getByRole('link', { name: 'Sessions' })
.click();
await expect(
page.getByRole('navigation', { name: 'breadcrumbs' }).getByText('Sessions'),
).toBeVisible();
let i = 0;
let sessionIsVisible = false;
let sessionIsActive = false;
@@ -568,8 +571,17 @@ exports.waitForSessionToBeVisible = async (page, targetName) => {
if (sessionIsVisible && sessionIsActive) {
break;
}
await page.getByRole('button', { name: 'Refresh' }).click();
await expect(page.getByRole('button', { name: 'Refresh' })).toBeEnabled();
const noSessionsAvailable = await page
.getByText('No Sessions Available', { exact: true })
.isVisible();
if (noSessionsAvailable) {
await new Promise((r) => setTimeout(r, 1000));
await page.reload();
} else {
await page.getByRole('button', { name: 'Refresh' }).click();
await expect(page.getByRole('button', { name: 'Refresh' })).toBeEnabled();
}
} while (i < 5);
if (!sessionIsVisible) {
@@ -769,10 +781,7 @@ exports.createUser = async (page) => {
.getByRole('navigation', { name: 'IAM' })
.getByRole('link', { name: 'Users' })
.click();
await page
.getByRole('article')
.getByRole('link', { name: 'New', exact: true })
.click();
await page.getByRole('link', { name: 'New', exact: true }).click();
await page.getByLabel('Name').fill(userName);
await page.getByRole('button', { name: 'Save' }).click();
await expect(
@@ -818,10 +827,7 @@ exports.createGroup = async (page) => {
.getByRole('navigation', { name: 'IAM' })
.getByRole('link', { name: 'Groups' })
.click();
await page
.getByRole('article')
.getByRole('link', { name: 'New', exact: true })
.click();
await page.getByRole('link', { name: 'New', exact: true }).click();
await page.getByLabel('Name').fill(groupName);
await page.getByRole('button', { name: 'Save' }).click();
await expect(
@@ -926,6 +932,7 @@ exports.addGrantsToGroup = async (page, grants) => {
/**
* Uses the UI to create a new Storage Bucket. Assumes you have selected the desired scope.
* @param {Page} page Playwright page object
* @param {string} scope Scope of the Storage Bucket
* @param {string} bucketName Name of the Storage Bucket
* @param {string} region Region of the Storage Bucket
* @param {string} accessKeyId Access Key ID for the Storage Bucket
@@ -935,6 +942,7 @@ exports.addGrantsToGroup = async (page, grants) => {
*/
exports.createStorageBucket = async (
page,
scope,
bucketName,
region,
accessKeyId,
@@ -947,6 +955,7 @@ exports.createStorageBucket = async (
.click();
await page.getByRole('link', { name: 'New Storage Bucket' }).click();
await page.getByLabel(new RegExp('Name*')).fill(storageBucketName);
await page.getByLabel('Scope').selectOption({ label: scope });
await page.getByLabel('Bucket name').fill(bucketName);
await page.getByLabel('Region').fill(region);
await page.getByLabel('Access key ID').fill(accessKeyId);
@@ -16,14 +16,10 @@ const {
const {
createOrg,
createProject,
createHostCatalog,
createHostSet,
createHostInHostSet,
createTarget,
createTargetWithAddress,
createStaticCredentialStore,
createStaticCredentialKeyPair,
addBrokeredCredentialsToTarget,
addHostSourceToTarget,
} = require('../helpers/boundary-ui');
test.use({ storageState: authenticatedState });
@@ -48,11 +44,11 @@ test.beforeEach(async ({ page }) => {
orgName = await createOrg(page);
projectName = await createProject(page);
await createHostCatalog(page);
const hostSetName = await createHostSet(page);
await createHostInHostSet(page, process.env.E2E_TARGET_ADDRESS);
targetName = await createTarget(page, process.env.E2E_TARGET_PORT);
await addHostSourceToTarget(page, hostSetName);
targetName = await createTargetWithAddress(
page,
process.env.E2E_TARGET_ADDRESS,
process.env.E2E_TARGET_PORT,
);
await createStaticCredentialStore(page);
});
@@ -18,11 +18,7 @@ const {
createOrg,
createProject,
createVaultCredentialStore,
createHostCatalog,
createHostSet,
createHostInHostSet,
createTarget,
addHostSourceToTarget,
createTargetWithAddress,
addBrokeredCredentialsToTarget,
} = require('../helpers/boundary-ui');
const { readFile } = require('fs/promises');
@@ -103,11 +99,11 @@ test('Vault Credential Store (User & Key Pair) @ce @aws @docker', async ({
);
const project = projects.items.filter((obj) => obj.name == projectName)[0];
await createHostCatalog(page);
const hostSetName = await createHostSet(page);
await createHostInHostSet(page, process.env.E2E_TARGET_ADDRESS);
const targetName = await createTarget(page, process.env.E2E_TARGET_PORT);
await addHostSourceToTarget(page, hostSetName);
const targetName = await createTargetWithAddress(
page,
process.env.E2E_TARGET_ADDRESS,
process.env.E2E_TARGET_PORT,
);
const targets = JSON.parse(
execSync(`boundary targets list -format json -scope-id ${project.id}`),
);
@@ -79,6 +79,7 @@ test('Verify session recording can be deleted @ent @aws', async ({ page }) => {
await page.getByRole('link', { name: 'Orgs', exact: true }).click();
const storageBucketName = await createStorageBucket(
page,
orgName,
process.env.E2E_AWS_BUCKET_NAME,
process.env.E2E_AWS_REGION,
process.env.E2E_AWS_ACCESS_KEY_ID,
@@ -86,7 +87,7 @@ test('Verify session recording can be deleted @ent @aws', async ({ page }) => {
`"${process.env.E2E_WORKER_TAG_EGRESS}" in "/tags/type"`,
);
const storageBuckets = JSON.parse(
execSync('boundary storage-buckets list -format json'),
execSync('boundary storage-buckets list --recursive -format json'),
);
storageBucket = storageBuckets.items.filter(
(obj) => obj.name == storageBucketName,
@@ -94,8 +95,8 @@ test('Verify session recording can be deleted @ent @aws', async ({ page }) => {
// Create target
await page.getByRole('link', { name: 'Orgs', exact: true }).click();
await page.getByRole('link', { name: orgId }).click();
await page.getByRole('link', { name: projectId }).click();
await page.getByRole('link', { name: orgName }).click();
await page.getByRole('link', { name: projectName }).click();
const targetName = await createSshTargetWithAddressAndWorkerFilterEnt(
page,
process.env.E2E_TARGET_ADDRESS,
@@ -118,7 +119,7 @@ test('Verify session recording can be deleted @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: orgId }).click();
await page.getByRole('link', { name: orgName }).click();
const policyName = await createStoragePolicy(page);
await attachStoragePolicy(page, policyName);
@@ -135,7 +136,7 @@ test('Verify session recording can be deleted @ent @aws', async ({ page }) => {
await expect(
page.getByRole('alert').getByText('Success', { exact: true }),
).toBeVisible();
await page.getByRole('button', { name: 'Dismiss' }).click();
await page.getByRole('button', { name: 'Dismiss', exact: true }).click();
await waitForSessionRecordingCli(storageBucket.id);
// Play back session recording
@@ -182,7 +183,7 @@ test('Verify session recording can be deleted @ent @aws', async ({ page }) => {
(obj) => obj.name == policyName,
)[0];
await page.getByRole('link', { name: 'Orgs', exact: true }).click();
await page.getByRole('link', { name: orgId }).click();
await page.getByRole('link', { name: orgName }).click();
await page
.getByRole('link', { name: 'Storage Policies', exact: true })
.click();