@mablhq/mabl-cli 1.52.3 → 1.52.8

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.
@@ -80,8 +80,9 @@ class ChromiumBrowserEngine {
80
80
  }
81
81
  return {
82
82
  commandLineArgs,
83
- ignoreCommandLineDefaultArgs,
84
83
  defaultDeviceDescriptor,
84
+ ignoreCommandLineDefaultArgs,
85
+ permissions: ['geolocation', 'notifications'],
85
86
  };
86
87
  }
87
88
  getExecutionEngineBrowserLaunchOptions(options, proxyInfo) {
@@ -41,6 +41,7 @@ class FirefoxBrowserEngine {
41
41
  commandLineArgs: [],
42
42
  ignoreCommandLineDefaultArgs: [],
43
43
  defaultDeviceDescriptor: (0, mobileEmulationUtil_1.getDeviceDescriptorForEmulation)(options.emulationConfig),
44
+ permissions: ['geolocation', 'notifications'],
44
45
  };
45
46
  }
46
47
  getExecutionEngineBrowserLaunchOptions(options, _proxyInfo) {
@@ -11,6 +11,10 @@ const loggingProvider_1 = require("../../providers/logging/loggingProvider");
11
11
  const playwrightBrowser_1 = require("./playwrightBrowser");
12
12
  const simplePlaywrightLogger_1 = require("./simplePlaywrightLogger");
13
13
  const BROWSER_LAUNCH_TIMEOUT_MS = 60000;
14
+ const DEFAULT_GEOLOCATION = {
15
+ latitude: 41.2208967,
16
+ longitude: -95.8639286,
17
+ };
14
18
  class PlaywrightBrowserLauncher {
15
19
  async launch(options) {
16
20
  var _a, _b, _c, _d;
@@ -43,6 +47,7 @@ class PlaywrightBrowserLauncher {
43
47
  downloadsPath: getFinalDownloadDestination(options.browserType, options.downloadPath),
44
48
  executablePath: options.browserPath,
45
49
  extraHTTPHeaders: options.extraHttpHeaders,
50
+ geolocation: DEFAULT_GEOLOCATION,
46
51
  hasTouch: (_b = options.defaultDeviceDescriptor) === null || _b === void 0 ? void 0 : _b.hasTouch,
47
52
  headless: options.headless,
48
53
  httpCredentials: options.credentials,
@@ -50,6 +55,7 @@ class PlaywrightBrowserLauncher {
50
55
  ignoreHTTPSErrors: true,
51
56
  isMobile: (_c = options.defaultDeviceDescriptor) === null || _c === void 0 ? void 0 : _c.isMobile,
52
57
  logger: playwrightLogger,
58
+ permissions: options.permissions,
53
59
  proxy: options.proxy,
54
60
  timeout: BROWSER_LAUNCH_TIMEOUT_MS,
55
61
  userAgent: (_d = options.userAgent) !== null && _d !== void 0 ? _d : options.defaultUserAgent,
@@ -6,10 +6,9 @@ const testsUtil_1 = require("../testsUtil");
6
6
  const constants_1 = require("../../constants");
7
7
  const loggingProvider_1 = require("../../../providers/logging/loggingProvider");
8
8
  const mablApi_1 = require("../../../mablApi");
9
- const reporter_1 = require("../../../reporters/reporter");
10
9
  const execution_1 = require("../../../execution");
11
10
  const defaultEnv_1 = require("../../../env/defaultEnv");
12
- const chalk = require('chalk');
11
+ const runUtils_1 = require("./runUtils");
13
12
  const execution = require('../../../execution/index');
14
13
  exports.command = `run`;
15
14
  exports.describe =
@@ -234,40 +233,7 @@ async function run(parsed) {
234
233
  (0, testsUtil_1.cleanupTestResources)(testContext);
235
234
  });
236
235
  }
237
- loggingProvider_1.logger.logNewLine();
238
- loggingProvider_1.logger.info(`Test count: ${results.numTotalTests}`);
239
- loggingProvider_1.logger.info(`Passed: ${results.numPassedTests}`);
240
- if (results.numPassedTests) {
241
- results.testResults.forEach((result) => {
242
- if (result.status === 'passed') {
243
- loggingProvider_1.logger.info(` - ${result.testName} (${(0, testsUtil_1.calculateTotalTimeSeconds)(result.startTime, result.endTime)}s)`);
244
- }
245
- });
246
- }
247
- loggingProvider_1.logger.info(`Skipped: ${results.numSkippedTests}`);
248
- if (results.numSkippedTests) {
249
- results.testResults.forEach((result) => {
250
- if (result.status === 'skipped') {
251
- loggingProvider_1.logger.info(chalk.yellow(` - ${result.testName}`));
252
- }
253
- });
254
- }
255
- loggingProvider_1.logger.info(`Failed: ${results.numFailedTests}`);
256
- if (results.numFailedTests) {
257
- results.testResults.forEach((result) => {
258
- if (result.status === 'failed') {
259
- loggingProvider_1.logger.info(chalk.red(` - ${result.testName} (${(0, testsUtil_1.calculateTotalTimeSeconds)(result.startTime, result.endTime)}s) - ${result.testId}`));
260
- }
261
- });
262
- if (parsed.labels || parsed['from-plan-id'] || process.env.CI) {
263
- loggingProvider_1.logger.info(`Rerun any failed test with the following command template:`);
264
- loggingProvider_1.logger.info(`${chalk.magenta(generateRunCommandTemplate(parsed, results))}`);
265
- }
266
- }
267
- loggingProvider_1.logger.info(`Total time: ${(0, testsUtil_1.calculateTotalTimeSeconds)(commandStartTime, Date.now())} seconds`);
268
- if (parsed.reporter) {
269
- await (0, reporter_1.handleReportingForTestsRun)(parsed.reporter, results, parsed['reporter-options']);
270
- }
236
+ await (0, runUtils_1.logTestResults)(results, parsed, commandStartTime, generateRunCommandTemplate(parsed, results));
271
237
  if (!results.success && !testRunnerConfig.keepBrowserOpen) {
272
238
  process.exit(1);
273
239
  }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.logTestResults = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const loggingProvider_1 = require("../../../providers/logging/loggingProvider");
9
+ const reporter_1 = require("../../../reporters/reporter");
10
+ const testsUtil_1 = require("../testsUtil");
11
+ async function logTestResults(results, parsed, commandStartTime, rerunCommandTemplate) {
12
+ loggingProvider_1.logger.logNewLine();
13
+ loggingProvider_1.logger.info(`Test count: ${results.numTotalTests}`);
14
+ loggingProvider_1.logger.info(`Passed: ${results.numPassedTests}`);
15
+ if (results.numPassedTests) {
16
+ results.testResults.forEach((result) => {
17
+ if (result.status === 'passed') {
18
+ loggingProvider_1.logger.info(` - ${result.testName} (${(0, testsUtil_1.calculateTotalTimeSeconds)(result.startTime, result.endTime)}s)`);
19
+ }
20
+ });
21
+ }
22
+ loggingProvider_1.logger.info(`Skipped: ${results.numSkippedTests}`);
23
+ if (results.numSkippedTests) {
24
+ results.testResults.forEach((result) => {
25
+ if (result.status === 'skipped') {
26
+ loggingProvider_1.logger.info(chalk_1.default.yellow(` - ${result.testName}`));
27
+ }
28
+ });
29
+ }
30
+ loggingProvider_1.logger.info(`Failed: ${results.numFailedTests}`);
31
+ if (results.numFailedTests) {
32
+ results.testResults.forEach((result) => {
33
+ if (result.status === 'failed') {
34
+ loggingProvider_1.logger.info(chalk_1.default.red(` - ${result.testName} (${(0, testsUtil_1.calculateTotalTimeSeconds)(result.startTime, result.endTime)}s) - ${result.testId}`));
35
+ }
36
+ });
37
+ if (parsed.labels || parsed['from-plan-id'] || process.env.CI) {
38
+ loggingProvider_1.logger.info(`Rerun any failed test with the following command template:`);
39
+ loggingProvider_1.logger.info(`${chalk_1.default.magenta(rerunCommandTemplate)}`);
40
+ }
41
+ }
42
+ loggingProvider_1.logger.info(`Total time: ${(0, testsUtil_1.calculateTotalTimeSeconds)(commandStartTime, Date.now())} seconds`);
43
+ if (parsed.reporter) {
44
+ await (0, reporter_1.handleReportingForTestsRun)(parsed.reporter, results, parsed['reporter-options']);
45
+ }
46
+ }
47
+ exports.logTestResults = logTestResults;