@mablhq/mabl-cli 1.13.21 → 1.16.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/basicApiClient.js +56 -32
- package/api/featureSet.js +27 -0
- package/api/mablApiClient.js +22 -21
- package/api/mablApiClientFactory.js +0 -8
- package/browserLauncher/pageEvent.js +1 -0
- package/browserLauncher/playwrightBrowserLauncher/playwrightBrowser.js +3 -0
- package/browserLauncher/playwrightBrowserLauncher/playwrightBrowserLauncher.js +2 -0
- package/browserLauncher/playwrightBrowserLauncher/playwrightDom.js +12 -0
- package/browserLauncher/playwrightBrowserLauncher/playwrightPage.js +6 -0
- package/browserLauncher/puppeteerBrowserLauncher/puppeteerBrowser.js +10 -0
- package/browserLauncher/puppeteerBrowserLauncher/puppeteerElementHandle.js +12 -0
- package/browserLauncher/puppeteerBrowserLauncher/puppeteerPage.js +6 -0
- package/commands/applications/applications_cmds/list.js +5 -2
- package/commands/branches/branches_cmds/list.js +5 -2
- package/commands/config/config_cmds/get.js +5 -2
- package/commands/config/config_cmds/list.js +5 -2
- package/commands/credentials/credentials_cmds/list.js +5 -2
- package/commands/deploy/deploy_cmds/executionResultPresenter.js +5 -2
- package/commands/deploy/deploy_cmds/list.js +5 -2
- package/commands/environments/environments_cmds/list.js +5 -2
- package/commands/flows/flows_cmds/list.js +5 -2
- package/commands/plans/plans_cmds/list.js +5 -2
- package/commands/tests/executionUtil.js +6 -1
- package/commands/tests/testsUtil.js +8 -23
- package/commands/tests/tests_cmds/list.js +5 -2
- package/commands/tests/tests_cmds/trainer_cmds/trainerUtil.js +2 -2
- package/commands/workspaces/workspace_cmds/list.js +5 -2
- package/domUtil/index.js +1 -1
- package/execution/index.js +1 -1
- package/execution/index.js.LICENSE.txt +0 -6
- package/mablApi/index.js +1 -1
- package/mablscript/MablStep.js +3 -0
- package/mablscript/steps/AccessibilityCheck.js +14 -2
- package/mablscriptFind/index.js +1 -1
- package/package.json +3 -3
- package/resources/mablFind.js +1 -1
- package/util/resourceUtil.js +39 -13
- package/api/entities/JourneyRunScheduledMessage.js +0 -2
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
const constants_1 = require("../../constants");
|
|
4
7
|
const util_1 = require("../../commandUtil/util");
|
|
5
8
|
const mablApiClientFactory_1 = require("../../../api/mablApiClientFactory");
|
|
6
|
-
const
|
|
9
|
+
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
7
10
|
const moment = require("moment");
|
|
8
11
|
const loggingProvider_1 = require("../../../providers/logging/loggingProvider");
|
|
9
12
|
exports.command = 'list';
|
|
@@ -41,7 +44,7 @@ async function listPlans(parsed) {
|
|
|
41
44
|
return plans.length;
|
|
42
45
|
}
|
|
43
46
|
function printPlans(plans) {
|
|
44
|
-
const table = new
|
|
47
|
+
const table = new cli_table3_1.default({
|
|
45
48
|
head: ['ID', 'Name', 'Created time'],
|
|
46
49
|
wordWrap: true,
|
|
47
50
|
});
|
|
@@ -15,7 +15,12 @@ async function runTheTestInNewWindow(test, flows, branchName, url, credentialsId
|
|
|
15
15
|
const authConfig = await new authenticationProvider_1.AuthenticationProvider().getAuthConfigWithAutoRenew();
|
|
16
16
|
const browserPreferences = testsUtil_1.generateChromiumPreferencesFile();
|
|
17
17
|
const browserPreferencesDirectory = await testsUtil_1.prepareChromePreferencesDirectory(browserPreferences);
|
|
18
|
-
const
|
|
18
|
+
const apiClient = await mablApiClientFactory_1.MablApiClientFactory.createApiClient();
|
|
19
|
+
if (!test.organization_id) {
|
|
20
|
+
throw new Error('The test workspace ID is required, but it is not set.');
|
|
21
|
+
}
|
|
22
|
+
const featureFlags = await apiClient.getEffectiveFeaturesByWorkspaceId(test.organization_id);
|
|
23
|
+
const runnerType = featureFlags.getRunnerType();
|
|
19
24
|
const trainingBrowser = await testsUtil_1.createBrowserWithAuthedExtension(authConfig.accessToken, width || exports.DEFAULT_BROWSER_WIDTH, height || exports.DEFAULT_BROWSER_HEIGHT, browserPreferencesDirectory, {
|
|
20
25
|
runnerType,
|
|
21
26
|
});
|
|
@@ -22,7 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
22
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
23
|
};
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.toBasicHttpAuthenticationCredentials = exports.generateChromiumPreferencesFile = exports.logTestInfoIfPresent = exports.calculateTotalTimeSeconds = exports.extractTestRunConfig = exports.pullDownTestRunConfig = exports.validateRunCommandWithLabels = exports.validateRunEditCommand = exports.downloadUploadFile = exports.sleep = exports.editTheTest = exports.runTheTest = exports.prepareTrainerForSplitPlayback = exports.createTrainingSession = exports.cleanUpInitialPages = exports.getExtensionBackgroundPageWithCliTool = exports.setUpAuthTokenForExtension = exports.
|
|
25
|
+
exports.toBasicHttpAuthenticationCredentials = exports.generateChromiumPreferencesFile = exports.logTestInfoIfPresent = exports.calculateTotalTimeSeconds = exports.extractTestRunConfig = exports.pullDownTestRunConfig = exports.validateRunCommandWithLabels = exports.validateRunEditCommand = exports.downloadUploadFile = exports.sleep = exports.editTheTest = exports.runTheTest = exports.prepareTrainerForSplitPlayback = exports.createTrainingSession = exports.cleanUpInitialPages = exports.getExtensionBackgroundPageWithCliTool = exports.setUpAuthTokenForExtension = exports.createBrowserForExecutionEngine = exports.addExecutionEngineLaunchArgs = exports.createBrowser = exports.prepareChromePreferencesDirectory = exports.createBrowserWithAuthedExtension = exports.findChrome = exports.searchForChrome = exports.getFinalUrl = exports.getTempChromePrefDirectory = void 0;
|
|
26
26
|
const os = __importStar(require("os"));
|
|
27
27
|
const trainerUtil_1 = require("./tests_cmds/trainer_cmds/trainerUtil");
|
|
28
28
|
const fs = __importStar(require("fs-extra"));
|
|
@@ -37,7 +37,7 @@ const env_1 = require("../../env/env");
|
|
|
37
37
|
const axios_1 = __importDefault(require("axios"));
|
|
38
38
|
const httpUtil_1 = require("../../util/httpUtil");
|
|
39
39
|
const loggingProvider_1 = require("../../providers/logging/loggingProvider");
|
|
40
|
-
const
|
|
40
|
+
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
41
41
|
const logLineMessaging_1 = require("../../core/messaging/logLineMessaging");
|
|
42
42
|
const resourceUtil_1 = require("../../util/resourceUtil");
|
|
43
43
|
const mobileEmulationUtil_1 = require("./mobileEmulationUtil");
|
|
@@ -158,6 +158,8 @@ async function launchBrowserInstance(chromePath, launchArgs, userDataDir, headle
|
|
|
158
158
|
messaging_1.mablEventEmitter.log(error.message);
|
|
159
159
|
});
|
|
160
160
|
}
|
|
161
|
+
messaging_1.mablEventEmitter.log('Browser launch failed', Date.now(), logLineMessaging_1.LogLineColor.red);
|
|
162
|
+
messaging_1.mablEventEmitter.log(error.message);
|
|
161
163
|
}
|
|
162
164
|
return browser;
|
|
163
165
|
}
|
|
@@ -197,7 +199,7 @@ function removeTempBrowserPreferencesDirectory(tempDirPath) {
|
|
|
197
199
|
}
|
|
198
200
|
}
|
|
199
201
|
async function createBrowser(browserWidth, browserHeight, headless, containerTesting, tempBrowserPreferencesDirectory, options) {
|
|
200
|
-
const { credentials, browserPath, disableIsolation, extraHttpHeaders, ignoreCertificateErrors, emulationConfig, enableExtensions, runnerType, loggerFunc, } = options || {};
|
|
202
|
+
const { credentials, browserPath, disableIsolation, extraHttpHeaders, ignoreCertificateErrors, emulationConfig, enableExtensions, runnerType, loggerFunc, resourcesDirectoryOverride, } = options || {};
|
|
201
203
|
const chromePath = browserPath !== null && browserPath !== void 0 ? browserPath : findChrome();
|
|
202
204
|
if (!chromePath.length) {
|
|
203
205
|
messaging_1.mablEventEmitter.log(chalk.yellow('Could not find a local install of Chrome to use, please ensure you have it installed and try again'));
|
|
@@ -213,8 +215,8 @@ async function createBrowser(browserWidth, browserHeight, headless, containerTes
|
|
|
213
215
|
}
|
|
214
216
|
disableFeaturesFlags.push('site-per-process');
|
|
215
217
|
launchArgs.push(`--disable-features=${disableFeaturesFlags.join(',')}`);
|
|
216
|
-
const fakeMicrophoneMedia = resourceUtil_1.findResource('media/mabl_test_audio.wav');
|
|
217
|
-
const fakeWebcamMedia = resourceUtil_1.findResource('media/mabl_test_pattern.y4m');
|
|
218
|
+
const fakeMicrophoneMedia = resourceUtil_1.findResource('media/mabl_test_audio.wav', resourcesDirectoryOverride);
|
|
219
|
+
const fakeWebcamMedia = resourceUtil_1.findResource('media/mabl_test_pattern.y4m', resourcesDirectoryOverride);
|
|
218
220
|
const defaultDeviceDescriptor = addLaunchArgs(launchArgs, browserWidth, browserHeight, fakeMicrophoneMedia, fakeWebcamMedia, ignoreCertificateErrors, emulationConfig);
|
|
219
221
|
let ignoreDefaultArgs;
|
|
220
222
|
if (enableExtensions) {
|
|
@@ -282,23 +284,6 @@ async function createBrowserForExecutionEngine(browserWidth, browserHeight, head
|
|
|
282
284
|
return maybeBrowser;
|
|
283
285
|
}
|
|
284
286
|
exports.createBrowserForExecutionEngine = createBrowserForExecutionEngine;
|
|
285
|
-
async function connectToExistingBrowser(port, browserHeight, browserWidth, currentDownloadPath, runnerType) {
|
|
286
|
-
const defaultDeviceDescriptor = {
|
|
287
|
-
width: browserWidth,
|
|
288
|
-
height: browserHeight,
|
|
289
|
-
};
|
|
290
|
-
const response = await axios_1.default.get(`http://localhost:${port}/json/version`);
|
|
291
|
-
const url = response.data.webSocketDebuggerUrl;
|
|
292
|
-
return connectToExistingBrowserWebsocket(url, currentDownloadPath, defaultDeviceDescriptor, runnerType);
|
|
293
|
-
}
|
|
294
|
-
exports.connectToExistingBrowser = connectToExistingBrowser;
|
|
295
|
-
function connectToExistingBrowserWebsocket(websocketEndpoint, currentDownloadPath, defaultDeviceDescriptor, runnerType) {
|
|
296
|
-
return browserLauncher_1.BrowserLauncherFactory.createRunner(runnerType).connect({
|
|
297
|
-
defaultDeviceDescriptor,
|
|
298
|
-
browserWSEndpoint: websocketEndpoint,
|
|
299
|
-
}, currentDownloadPath);
|
|
300
|
-
}
|
|
301
|
-
exports.connectToExistingBrowserWebsocket = connectToExistingBrowserWebsocket;
|
|
302
287
|
async function setUpAuthTokenForExtension(browser, accessToken) {
|
|
303
288
|
const backgroundPage = await browser.getExtensionBackgroundPage(trainerUtil_1.getTrainerId());
|
|
304
289
|
await backgroundPage.evaluate((token) => {
|
|
@@ -472,7 +457,7 @@ function handleExtensionMessage(message, trainingBrowser) {
|
|
|
472
457
|
break;
|
|
473
458
|
}
|
|
474
459
|
trainingSessionActions_1.TrainingEventEmitter.sessionSaved(trainedTestInfoMessage.test.id, trainedTestInfoMessage.test.invariant_id, trainedTestInfoMessage.branch, trainedTestInfoMessage.planId);
|
|
475
|
-
const table = new
|
|
460
|
+
const table = new cli_table3_1.default({
|
|
476
461
|
head: [chalk.yellow('Saved Test Info')],
|
|
477
462
|
wordWrap: true,
|
|
478
463
|
});
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
6
|
+
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
4
7
|
const moment = require("moment");
|
|
5
8
|
const mablApiClientFactory_1 = require("../../../api/mablApiClientFactory");
|
|
6
9
|
const util_1 = require("../../commandUtil/util");
|
|
@@ -72,7 +75,7 @@ async function listTests(parsed) {
|
|
|
72
75
|
return journeys.length;
|
|
73
76
|
}
|
|
74
77
|
function printTestsAsTable(tests) {
|
|
75
|
-
const table = new
|
|
78
|
+
const table = new cli_table3_1.default({
|
|
76
79
|
head: ['ID', 'Name', 'Created time'],
|
|
77
80
|
wordWrap: true,
|
|
78
81
|
});
|
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.checkForTrainerUpdate = exports.getTrainerVersion = exports.getTrainerId = exports.updateMablTrainer = exports.getMablTrainerExtensionPath = exports.getTrainerZipFile = exports.getTrainerManifestPath = exports.getTrainerUnzippedPath = exports.getTrainerPath = exports.LOCAL_TRAINER_ID = void 0;
|
|
7
7
|
const env_1 = require("../../../../env/env");
|
|
8
|
-
const
|
|
8
|
+
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
9
9
|
const httpUtil_1 = require("../../../../util/httpUtil");
|
|
10
10
|
const messaging_1 = require("../../../../core/messaging/messaging");
|
|
11
11
|
const envPaths = require('env-paths');
|
|
@@ -131,7 +131,7 @@ async function checkForTrainerUpdate() {
|
|
|
131
131
|
.then((checkSum) => {
|
|
132
132
|
const checkSumLatest = checkSum.match('md5=([^}]+)');
|
|
133
133
|
if (checkSumLatest && checkSumLatest[1] !== currentTrainerCheckSum) {
|
|
134
|
-
const table = new
|
|
134
|
+
const table = new cli_table3_1.default({
|
|
135
135
|
head: [chalk.yellow('Trainer Update Available')],
|
|
136
136
|
wordWrap: true,
|
|
137
137
|
});
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
const js_yaml_1 = require("js-yaml");
|
|
4
7
|
const mablApiClientFactory_1 = require("../../../api/mablApiClientFactory");
|
|
5
|
-
const
|
|
8
|
+
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
6
9
|
const moment = require("moment");
|
|
7
10
|
const util_1 = require("../../commandUtil/util");
|
|
8
11
|
const interfaces_1 = require("../../commandUtil/interfaces");
|
|
@@ -43,7 +46,7 @@ function printWorkspaces(workspaces, output) {
|
|
|
43
46
|
loggingProvider_1.logger.info(js_yaml_1.dump(workspaces));
|
|
44
47
|
break;
|
|
45
48
|
default:
|
|
46
|
-
const table = new
|
|
49
|
+
const table = new cli_table3_1.default({
|
|
47
50
|
head: ['ID', 'Name', 'Created time'],
|
|
48
51
|
wordWrap: true,
|
|
49
52
|
});
|