test(e2e): Fixes for 0.16.0 (#2258)
This commit is contained in:
1 parent
536ebc1c0f
commit
20f8c99013
5 files changed
+39
-37
No files matched your search
@@ -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) =>
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in new issue
Block a user