* refactor: 💡 Move e2e tests to new folder * refactor: 💡 Convert desktop tests to mjs and use es6 imports * refactor: 💡 Use module setting for e2e directory and remove mjs * refactor: 💡 Remove "e2e" in all scripts in package.json
33 lines
959 B
JavaScript
33 lines
959 B
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: BUSL-1.1
|
|
*/
|
|
|
|
import { execSync } from 'node:child_process';
|
|
|
|
/**
|
|
* Waits for a session recording to be available
|
|
* @param {string} storageBucketId ID of storage bucket that the session recording is associated with
|
|
* @returns An object representing a session recording
|
|
*/
|
|
export async function waitForSessionRecordingCli(storageBucketId) {
|
|
let i = 0;
|
|
let filteredSessionRecording = [];
|
|
do {
|
|
i = i + 1;
|
|
const sessionRecordings = JSON.parse(
|
|
execSync('boundary session-recordings list --recursive -format json'),
|
|
);
|
|
filteredSessionRecording = sessionRecordings.items.filter(
|
|
(obj) =>
|
|
obj.storage_bucket_id == storageBucketId && obj.state == 'available',
|
|
);
|
|
if (filteredSessionRecording.length > 0) {
|
|
break;
|
|
}
|
|
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
} while (i < 5);
|
|
|
|
return filteredSessionRecording[0];
|
|
}
|