@wdio/cli 8.14.2 → 8.14.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAG9C,eAAO,MAAM,GAAG,KAA6B,CAAA;AAE7C,eAAO,MAAM,YAAY,QAAqE,CAAA;AAE9F,eAAO,MAAM,mBAAmB,8HAI/B,CAAA;AAED,eAAO,MAAM,6BAA6B,ucAYzC,CAAA;AAED,eAAO,MAAM,iCAAiC,8CAG7C,CAAA;AAED,eAAO,MAAM,WAAW,KAAK,CAAA;AAE7B,eAAO,MAAM,cAAc;;;;CAI1B,CAAA;AAED,eAAO,MAAM,UAAU;;;;CAItB,CAAA;AAED,eAAO,MAAM,uBAAuB,iGAI1B,CAAA;AAEV,eAAO,MAAM,gBAAgB;;;;CAInB,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFrB,CAAA;AAEV,eAAO,MAAM,gCAAgC;;;;;;IAQ5C,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM3D,CAAA;AAED,eAAO,MAAM,eAAe,6OAOlB,CAAA;AAEV,eAAO,MAAM,gBAAgB,4BAGnB,CAAA;AAEV,eAAO,MAAM,aAAa,+BAIhB,CAAA;AAEV,eAAO,MAAM,gBAAgB;;;GAG5B,CAAA;AAED,eAAO,MAAM,mBAAmB;;;GAG/B,CAAA;AAED,eAAO,MAAM,oBAAoB;;;GAKhC,CAAA;AAED,iBAAS,eAAe,CAAE,OAAO,EAAE,YAAY,WAE9C;AAwCD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAkBqB,YAAY;;;;;;;oBAkBX,YAAY;;;;;;;;;;;oBAOb,YAAY;;;;;;;;;;oBAmBX,YAAY;;;;;oBAQb,YAAY;;;;;;;;oBAMZ,YAAY;;;;;;;;oBAyBZ,YAAY;;;;;;oBAkDZ,YAAY;;;;;;uBAuBR,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;uBAcb,YAAY;;;;;;;oBAMf,YAAY;;;;;;uBAaT,YAAY;oBAIf,YAAY;;;;;;uBAkCT,YAAY;oBAKf,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAqB9B,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAxRgC,MAAM;eAAS,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA0SjE,YAAY;;;;;;;;;IAmDvC,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAG9C,eAAO,MAAM,GAAG,KAA6B,CAAA;AAE7C,eAAO,MAAM,YAAY,QAAqE,CAAA;AAE9F,eAAO,MAAM,mBAAmB,8HAI/B,CAAA;AAED,eAAO,MAAM,6BAA6B,ucAYzC,CAAA;AAED,eAAO,MAAM,iCAAiC,8CAG7C,CAAA;AAED,eAAO,MAAM,WAAW,KAAK,CAAA;AAE7B,eAAO,MAAM,cAAc;;;;CAI1B,CAAA;AAED,eAAO,MAAM,UAAU;;;;CAItB,CAAA;AAED,oBAAY,eAAe;IACvB,KAAK,gCAAgC;IACrC,EAAE,iDAAiD;IACnD,GAAG,QAAQ;CACd;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;CAkF9B,CAAA;AAED,eAAO,MAAM,gCAAgC;;;;;;IAQ5C,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM3D,CAAA;AAED,oBAAY,aAAa;IACrB,KAAK,wBAAwB;IAC7B,UAAU,kCAAkC;IAC5C,SAAS,kCAAkC;IAC3C,YAAY,oCAAoC;IAChD,YAAY,uEAAuE;IACnF,IAAI,iCAAiC;CACxC;AAED,aAAK,eAAe;IAChB,KAAK,UAAU;IACf,IAAI,SAAS;CAChB;AAED,oBAAY,aAAa;IACrB,EAAE,OAAO;IACT,EAAE,OAAO;IACT,IAAI,SAAS;CAChB;AAED,eAAO,MAAM,gBAAgB;;;GAG5B,CAAA;AAED,eAAO,MAAM,mBAAmB;;;GAG/B,CAAA;AAED,eAAO,MAAM,oBAAoB;;;GAKhC,CAAA;AAED,iBAAS,eAAe,CAAE,OAAO,EAAE,YAAY,WAE9C;AAMD,eAAO,MAAM,aAAa,SAYzB,CAAA;AAqBD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAkBqB,YAAY;;;;;;;oBAkBX,YAAY;;;;;;;;;;;oBAOb,YAAY;;;;;;;;;;oBAgBX,YAAY;;;;;oBAQb,YAAY;;;;;;;;oBAMZ,YAAY;;;;;;;;oBAyBZ,YAAY;;;;;;oBAoDZ,YAAY;;;;;;;oBASZ,YAAY;;;;;;uBA0BR,YAAY;;;;;;;;;;;uBAcb,YAAY;;;;;;uBAmBZ,YAAY;oBAIf,YAAY;;;;;;uBAkCT,YAAY;oBAKf,YAAY;;;;;;;;;;;;;;;;uBAqBpC,YAAY;;;;uBAuBZ,YAAY;;;;;;;;;IA2DjC,CAAA"}
@@ -38,16 +38,12 @@ export const IOS_CONFIG = {
38
38
  automationName: 'XCUITest',
39
39
  deviceName: 'iPhone Simulator'
40
40
  };
41
- export const COMPILER_OPTION_ANSWERS = [
42
- 'Babel (https://babeljs.io/)',
43
- 'TypeScript (https://www.typescriptlang.org/)',
44
- 'No!'
45
- ];
46
- export const COMPILER_OPTIONS = {
47
- babel: COMPILER_OPTION_ANSWERS[0],
48
- ts: COMPILER_OPTION_ANSWERS[1],
49
- nil: COMPILER_OPTION_ANSWERS[2]
50
- };
41
+ export var CompilerOptions;
42
+ (function (CompilerOptions) {
43
+ CompilerOptions["Babel"] = "Babel (https://babeljs.io/)";
44
+ CompilerOptions["TS"] = "TypeScript (https://www.typescriptlang.org/)";
45
+ CompilerOptions["Nil"] = "No!";
46
+ })(CompilerOptions || (CompilerOptions = {}));
51
47
  /**
52
48
  * We have to use a string hash for value because InquirerJS default values do not work if we have
53
49
  * objects as a `value` to be stored from the user's answers.
@@ -151,23 +147,26 @@ export const TESTING_LIBRARY_PACKAGES = {
151
147
  svelte: '@testing-library/svelte',
152
148
  solid: 'solid-testing-library'
153
149
  };
154
- export const BACKEND_CHOICES = [
155
- 'On my local machine',
156
- 'In the cloud using Experitest',
157
- 'In the cloud using Sauce Labs',
158
- 'In the cloud using BrowserStack',
159
- 'In the cloud using Testingbot or LambdaTest or a different service',
160
- 'I have my own Selenium cloud'
161
- ];
162
- export const PROTOCOL_OPTIONS = [
163
- 'https',
164
- 'http'
165
- ];
166
- export const REGION_OPTION = [
167
- 'us',
168
- 'eu',
169
- 'apac'
170
- ];
150
+ export var BackendChoice;
151
+ (function (BackendChoice) {
152
+ BackendChoice["Local"] = "On my local machine";
153
+ BackendChoice["Experitest"] = "In the cloud using Experitest";
154
+ BackendChoice["Saucelabs"] = "In the cloud using Sauce Labs";
155
+ BackendChoice["Browserstack"] = "In the cloud using BrowserStack";
156
+ BackendChoice["OtherVendors"] = "In the cloud using Testingbot or LambdaTest or a different service";
157
+ BackendChoice["Grid"] = "I have my own Selenium cloud";
158
+ })(BackendChoice || (BackendChoice = {}));
159
+ var ProtocolOptions;
160
+ (function (ProtocolOptions) {
161
+ ProtocolOptions["HTTPS"] = "https";
162
+ ProtocolOptions["HTTP"] = "http";
163
+ })(ProtocolOptions || (ProtocolOptions = {}));
164
+ export var RegionOptions;
165
+ (function (RegionOptions) {
166
+ RegionOptions["US"] = "us";
167
+ RegionOptions["EU"] = "eu";
168
+ RegionOptions["APAC"] = "apac";
169
+ })(RegionOptions || (RegionOptions = {}));
171
170
  export const E2E_ENVIRONMENTS = [
172
171
  { name: 'Web - web applications in the browser', value: 'web' },
173
172
  { name: 'Mobile - native, hybrid and mobile web apps, on Android or iOS', value: 'mobile' }
@@ -188,24 +187,22 @@ function isBrowserRunner(answers) {
188
187
  function getTestingPurpose(answers) {
189
188
  return convertPackageHashToObject(answers.runner).purpose;
190
189
  }
191
- async function isNuxtProject() {
192
- const pathOptions = [
193
- path.join(process.cwd(), 'nuxt.config.js'),
194
- path.join(process.cwd(), 'nuxt.config.ts'),
195
- path.join(process.cwd(), 'nuxt.config.mjs'),
196
- path.join(process.cwd(), 'nuxt.config.mts')
197
- ];
198
- return (await Promise.all(pathOptions.map((o) => fs.access(o).then(() => true, () => false))).then((res) => res.filter(Boolean))).length > 0;
199
- }
190
+ export const isNuxtProject = await Promise.all([
191
+ path.join(process.cwd(), 'nuxt.config.js'),
192
+ path.join(process.cwd(), 'nuxt.config.ts'),
193
+ path.join(process.cwd(), 'nuxt.config.mjs'),
194
+ path.join(process.cwd(), 'nuxt.config.mts')
195
+ ].map((p) => fs.access(p).then(() => true, () => false))).then((res) => res.some(Boolean), () => false);
200
196
  function selectDefaultService(serviceNames) {
201
197
  serviceNames = Array.isArray(serviceNames) ? serviceNames : [serviceNames];
202
- return [SUPPORTED_PACKAGES.service.find(
198
+ return SUPPORTED_PACKAGES.service
203
199
  /* istanbul ignore next */
204
- ({ name }) => serviceNames.includes(name))?.value];
200
+ .filter(({ name }) => serviceNames.includes(name))
201
+ .map(({ value }) => value);
205
202
  }
206
203
  function prioServiceOrderFor(serviceNamesParam) {
207
204
  const serviceNames = Array.isArray(serviceNamesParam) ? serviceNamesParam : [serviceNamesParam];
208
- let services = Object.create(SUPPORTED_PACKAGES.service);
205
+ let services = SUPPORTED_PACKAGES.service;
209
206
  for (const serviceName of serviceNames) {
210
207
  const index = services.findIndex(({ name }) => name === serviceName);
211
208
  services = [services[index], ...services.slice(0, index), ...services.slice(index + 1)];
@@ -245,7 +242,7 @@ export const QUESTIONNAIRE = [{
245
242
  type: 'list',
246
243
  name: 'backend',
247
244
  message: 'Where is your automation backend located?',
248
- choices: BACKEND_CHOICES,
245
+ choices: Object.values(BackendChoice),
249
246
  when: /* instanbul ignore next */ (answers) => getTestingPurpose(answers) === 'e2e'
250
247
  }, {
251
248
  type: 'list',
@@ -253,8 +250,7 @@ export const QUESTIONNAIRE = [{
253
250
  message: 'Which environment you would like to automate?',
254
251
  choices: E2E_ENVIRONMENTS,
255
252
  default: 'web',
256
- when: /* istanbul ignore next */ (answers) => (getTestingPurpose(answers) === 'e2e' &&
257
- answers.backend === BACKEND_CHOICES[0])
253
+ when: /* istanbul ignore next */ (answers) => getTestingPurpose(answers) === 'e2e'
258
254
  }, {
259
255
  type: 'list',
260
256
  name: 'mobileEnvironment',
@@ -286,28 +282,28 @@ export const QUESTIONNAIRE = [{
286
282
  name: 'expEnvAccessKey',
287
283
  message: 'Access key from Experitest Cloud',
288
284
  default: 'EXPERITEST_ACCESS_KEY',
289
- when: /* istanbul ignore next */ (answers) => answers.backend === BACKEND_CHOICES[1]
285
+ when: /* istanbul ignore next */ (answers) => answers.backend === BackendChoice.Experitest
290
286
  }, {
291
287
  type: 'input',
292
288
  name: 'expEnvHostname',
293
289
  message: 'Environment variable for cloud url',
294
290
  default: 'example.experitest.com',
295
- when: /* istanbul ignore next */ (answers) => answers.backend === BACKEND_CHOICES[1]
291
+ when: /* istanbul ignore next */ (answers) => answers.backend === BackendChoice.Experitest
296
292
  }, {
297
293
  type: 'input',
298
294
  name: 'expEnvPort',
299
295
  message: 'Environment variable for port',
300
296
  default: '443',
301
- when: /* istanbul ignore next */ (answers) => answers.backend === BACKEND_CHOICES[1]
297
+ when: /* istanbul ignore next */ (answers) => answers.backend === BackendChoice.Experitest
302
298
  }, {
303
299
  type: 'list',
304
300
  name: 'expEnvProtocol',
305
301
  message: 'Choose a protocol for environment variable',
306
- default: 'https',
307
- choices: PROTOCOL_OPTIONS,
308
- when: /* istanbul ignore next */ (answers) => {
309
- return answers.backend === BACKEND_CHOICES[1] && answers.expEnvPort !== '80' && answers.expEnvPort !== '443';
310
- }
302
+ default: ProtocolOptions.HTTPS,
303
+ choices: Object.values(ProtocolOptions),
304
+ when: /* istanbul ignore next */ (answers) => (answers.backend === BackendChoice.Experitest &&
305
+ answers.expEnvPort !== '80' &&
306
+ answers.expEnvPort !== '443')
311
307
  }, {
312
308
  type: 'input',
313
309
  name: 'env_user',
@@ -327,31 +323,39 @@ export const QUESTIONNAIRE = [{
327
323
  name: 'env_user',
328
324
  message: 'Environment variable for username',
329
325
  default: 'BROWSERSTACK_USERNAME',
330
- when: /* istanbul ignore next */ (answers) => answers.backend === BACKEND_CHOICES[3]
326
+ when: /* istanbul ignore next */ (answers) => answers.backend === BackendChoice.Browserstack
331
327
  }, {
332
328
  type: 'input',
333
329
  name: 'env_key',
334
330
  message: 'Environment variable for access key',
335
331
  default: 'BROWSERSTACK_ACCESS_KEY',
336
- when: /* istanbul ignore next */ (answers) => answers.backend === BACKEND_CHOICES[3]
332
+ when: /* istanbul ignore next */ (answers) => answers.backend === BackendChoice.Browserstack
337
333
  }, {
338
334
  type: 'input',
339
335
  name: 'env_user',
340
336
  message: 'Environment variable for username',
341
337
  default: 'SAUCE_USERNAME',
342
- when: /* istanbul ignore next */ (answers) => answers.backend === BACKEND_CHOICES[2]
338
+ when: /* istanbul ignore next */ (answers) => answers.backend === BackendChoice.Saucelabs
343
339
  }, {
344
340
  type: 'input',
345
341
  name: 'env_key',
346
342
  message: 'Environment variable for access key',
347
343
  default: 'SAUCE_ACCESS_KEY',
348
- when: /* istanbul ignore next */ (answers) => answers.backend === BACKEND_CHOICES[2]
344
+ when: /* istanbul ignore next */ (answers) => answers.backend === BackendChoice.Saucelabs
349
345
  }, {
350
346
  type: 'list',
351
347
  name: 'region',
352
348
  message: 'In which region do you want to run your Sauce Labs tests in?',
353
- choices: REGION_OPTION,
354
- when: /* istanbul ignore next */ (answers) => answers.backend === BACKEND_CHOICES[2]
349
+ choices: Object.values(RegionOptions),
350
+ when: /* istanbul ignore next */ (answers) => answers.backend === BackendChoice.Saucelabs
351
+ }, {
352
+ type: 'confirm',
353
+ name: 'useSauceConnect',
354
+ message: ('Are you testing a local application and need Sauce Connect to be set-up?\n' +
355
+ 'Read more on Sauce Connect at: https://wiki.saucelabs.com/display/DOCS/Sauce+Connect+Proxy'),
356
+ default: isNuxtProject,
357
+ when: /* istanbul ignore next */ (answers) => (answers.backend === BackendChoice.Saucelabs &&
358
+ !isNuxtProject)
355
359
  }, {
356
360
  type: 'input',
357
361
  name: 'hostname',
@@ -387,7 +391,7 @@ export const QUESTIONNAIRE = [{
387
391
  type: 'list',
388
392
  name: 'isUsingCompiler',
389
393
  message: 'Do you want to use a compiler?',
390
- choices: COMPILER_OPTION_ANSWERS,
394
+ choices: Object.values(CompilerOptions),
391
395
  default: /* istanbul ignore next */ (answers) => detectCompiler(answers)
392
396
  }, {
393
397
  type: 'confirm',
@@ -467,17 +471,21 @@ export const QUESTIONNAIRE = [{
467
471
  type: 'checkbox',
468
472
  name: 'services',
469
473
  message: 'Do you want to add a service to your test setup?',
470
- choices: async (answers) => {
471
- if (answers.backend === BACKEND_CHOICES[3]) {
472
- return prioServiceOrderFor('browserstack');
474
+ choices: (answers) => {
475
+ const services = [];
476
+ if (answers.backend === BackendChoice.Browserstack) {
477
+ services.push('browserstack');
478
+ }
479
+ else if (answers.backend === BackendChoice.Saucelabs) {
480
+ services.push('sauce');
473
481
  }
474
- else if (answers.backend === BACKEND_CHOICES[2]) {
475
- return prioServiceOrderFor('sauce');
482
+ if (answers.e2eEnvironment === 'mobile') {
483
+ services.push('appium');
476
484
  }
477
- else if (answers.e2eEnvironment === 'mobile') {
478
- return prioServiceOrderFor('appium');
485
+ if (getTestingPurpose(answers) === 'e2e' && isNuxtProject) {
486
+ services.push('nuxt');
479
487
  }
480
- else if (getTestingPurpose(answers) === 'vscode') {
488
+ if (getTestingPurpose(answers) === 'vscode') {
481
489
  return [SUPPORTED_PACKAGES.service.find(({ name }) => name === 'vscode')];
482
490
  }
483
491
  else if (getTestingPurpose(answers) === 'electron') {
@@ -486,28 +494,29 @@ export const QUESTIONNAIRE = [{
486
494
  else if (getTestingPurpose(answers) === 'macos') {
487
495
  return [SUPPORTED_PACKAGES.service.find(({ name }) => name === 'appium')];
488
496
  }
489
- else if (getTestingPurpose(answers) === 'e2e' && await isNuxtProject()) {
490
- return prioServiceOrderFor('nuxt');
491
- }
492
- return SUPPORTED_PACKAGES.service;
497
+ return prioServiceOrderFor(services);
493
498
  },
494
- default: async (answers) => {
495
- if (answers.backend === BACKEND_CHOICES[3]) {
496
- return selectDefaultService('browserstack');
499
+ default: (answers) => {
500
+ const defaultServices = [];
501
+ if (answers.backend === BackendChoice.Browserstack) {
502
+ defaultServices.push('browserstack');
497
503
  }
498
- else if (answers.backend === BACKEND_CHOICES[2]) {
499
- return selectDefaultService('sauce');
504
+ else if (answers.backend === BackendChoice.Saucelabs) {
505
+ defaultServices.push('sauce');
500
506
  }
501
- else if (answers.e2eEnvironment === 'mobile' || getTestingPurpose(answers) === 'macos') {
502
- return selectDefaultService('appium');
507
+ if (answers.e2eEnvironment === 'mobile' || getTestingPurpose(answers) === 'macos') {
508
+ defaultServices.push('appium');
503
509
  }
504
- else if (getTestingPurpose(answers) === 'vscode') {
505
- return selectDefaultService('vscode');
510
+ if (getTestingPurpose(answers) === 'vscode') {
511
+ defaultServices.push('vscode');
506
512
  }
507
513
  else if (getTestingPurpose(answers) === 'electron') {
508
- return selectDefaultService('electron');
514
+ defaultServices.push('electron');
515
+ }
516
+ if (isNuxtProject) {
517
+ defaultServices.push('nuxt');
509
518
  }
510
- return [];
519
+ return selectDefaultService(defaultServices);
511
520
  }
512
521
  }, {
513
522
  type: 'input',
@@ -539,7 +548,9 @@ export const QUESTIONNAIRE = [{
539
548
  // mobile testing with Appium
540
549
  answers.e2eEnvironment !== 'mobile' &&
541
550
  // nor for VS Code, Electron or MacOS testing
542
- !['vscode', 'electron', 'macos'].includes(getTestingPurpose(answers)))
551
+ !['vscode', 'electron', 'macos'].includes(getTestingPurpose(answers)) &&
552
+ // nor for Nuxt projects
553
+ !isNuxtProject)
543
554
  }, {
544
555
  type: 'confirm',
545
556
  name: 'npmInstall',
@@ -1,6 +1,9 @@
1
1
  <%- answers.isUsingTypeScript || answers.esmSupport
2
2
  ? "import { Given, When, Then } from '@wdio/cucumber-framework';"
3
3
  : "const { Given, When, Then } = require('@wdio/cucumber-framework');" %>
4
+ <%- answers.isUsingTypeScript || answers.esmSupport
5
+ ? `import { expect, $ } from '@wdio/globals'`
6
+ : `const { expect, $ } = require('@wdio/globals')` %>
4
7
  <%
5
8
  /**
6
9
  * step definition without page objects
@@ -1,5 +1,6 @@
1
- <%- answers.isUsingTypeScript ? "import { ChainablePromiseElement } from 'webdriverio';" : "" %>
2
-
1
+ <%- answers.isUsingTypeScript || answers.esmSupport
2
+ ? `import { $ } from '@wdio/globals'`
3
+ : `const { $ } = require('@wdio/globals')` %>
3
4
  <%- answers.isUsingTypeScript || answers.esmSupport
4
5
  ? `import Page from './page${answers.esmSupport ? '.js' : ''}';`
5
6
  : "const Page = require('./page');" %>
@@ -1,3 +1,7 @@
1
+ <%- answers.isUsingTypeScript || answers.esmSupport
2
+ ? `import { browser } from '@wdio/globals'`
3
+ : `const { browser } = require('@wdio/globals')` %>
4
+
1
5
  /**
2
6
  * main page object containing all methods, selectors and functionality
3
7
  * that is shared across all page objects
@@ -1,5 +1,6 @@
1
- <%- answers.isUsingTypeScript ? "import { ChainablePromiseElement } from 'webdriverio';" : "" %>
2
-
1
+ <%- answers.isUsingTypeScript || answers.esmSupport
2
+ ? `import { $ } from '@wdio/globals'`
3
+ : `const { $ } = require('@wdio/globals')` %>
3
4
  <%- answers.isUsingTypeScript || answers.esmSupport
4
5
  ? `import Page from './page${answers.esmSupport ? '.js' : ''}';`
5
6
  : "const Page = require('./page');" %>
@@ -5,7 +5,9 @@ capabilities: [{<%
5
5
  'experitest:accessKey': '<%- answers.expEnvAccessKey %>',<%
6
6
  }
7
7
  if (answers.browserEnvironment && answers.browserEnvironment.length) { %>
8
- <%- answers.browserEnvironment.map((browserName) => `browserName: '${browserName}'`).join('\n }, {\n ') %><%
8
+ <%- answers.browserEnvironment.map((browserName) => {
9
+ return `browserName: '${browserName}'`
10
+ }).join('\n }, {\n ') %><%
9
11
  } else if (answers.mobileEnvironment === 'android') { %>
10
12
  // capabilities for local Appium web tests on an Android Emulator
11
13
  platformName: 'Android',
@@ -12,7 +12,18 @@ services: [<%- answers.services.map((service) => {
12
12
  electronVersion: '23.1.0',
13
13
  }
14
14
  ]`
15
+ } else if (service === 'sauce' && answers.useSauceConnect) {
16
+ return /*js*/`[
17
+ 'sauce',
18
+ {
19
+ sauceConnect: true,
20
+ sauceConnectOpts: {
21
+ // add Sauce Connect Options if needed
22
+ // see more at https://wiki.saucelabs.com/display/DOCS/Sauce+Connect+Proxy+Command-Line+Quick+Reference+Guide
23
+ }
24
+ }
25
+ ]`
15
26
  }
16
27
 
17
28
  return `'${service}'`
18
- }) %>],
29
+ }).join(', ') %>],
@@ -1,6 +1,6 @@
1
- /**
2
- * test with page objects
3
- */
1
+ <%- answers.isUsingTypeScript || answers.esmSupport
2
+ ? `import { expect } from '@wdio/globals'`
3
+ : `const { expect } = require('@wdio/globals')` %>
4
4
  <%- answers.isUsingTypeScript || answers.esmSupport
5
5
  ? `import LoginPage from '${answers.relativePath}/login.page${answers.esmSupport ? '.js' : ''}'`
6
6
  : `const LoginPage = require('${answers.relativePath}/login.page')` %>
@@ -1,6 +1,7 @@
1
- /**
2
- * test without page objects
3
- */
1
+ <%- answers.isUsingTypeScript || answers.esmSupport
2
+ ? `import { expect, browser, $ } from '@wdio/globals'`
3
+ : `const { expect, browser, $ } = require('@wdio/globals')` %>
4
+
4
5
  describe('My Login application', () => {
5
6
  it('should login with valid credentials', async () => {
6
7
  await browser.url(`https://the-internet.herokuapp.com/login`)
@@ -1,4 +1,4 @@
1
- import { browser } from '@wdio/globals'
1
+ import { browser, expect } from '@wdio/globals'
2
2
 
3
3
  describe('VS Code Extension Testing', () => {
4
4
  it('should be able to load VSCode', async () => {
package/build/types.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import type { Options, Reporters } from '@wdio/types';
2
2
  import type { NormalizedPackageJson } from 'read-pkg-up';
3
- import type { BACKEND_CHOICES, REGION_OPTION, COMPILER_OPTION_ANSWERS } from './constants.js';
3
+ import type { BackendChoice, RegionOptions, CompilerOptions } from './constants.js';
4
4
  export interface Questionnair {
5
5
  runner: string;
6
6
  preset?: string;
7
7
  installTestingLibrary?: boolean;
8
8
  appPath?: string;
9
- backend?: typeof BACKEND_CHOICES[number];
9
+ backend?: BackendChoice;
10
10
  hostname?: string;
11
11
  port?: string;
12
12
  path?: string;
@@ -16,14 +16,15 @@ export interface Questionnair {
16
16
  expEnvProtocol?: 'http' | 'https';
17
17
  env_user?: string;
18
18
  env_key?: string;
19
- region?: typeof REGION_OPTION[number];
19
+ region?: RegionOptions;
20
+ useSauceConnect?: boolean;
20
21
  framework: string;
21
22
  specs?: string;
22
23
  stepDefinitions?: string;
23
24
  generateTestFiles: boolean;
24
25
  usePageObjects?: boolean;
25
26
  pages?: string;
26
- isUsingCompiler: typeof COMPILER_OPTION_ANSWERS[number];
27
+ isUsingCompiler: CompilerOptions;
27
28
  reporters: string[];
28
29
  services: string[];
29
30
  plugins: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/build/utils.d.ts CHANGED
@@ -2,6 +2,7 @@
2
2
  import type { SpawnOptions } from 'node:child_process';
3
3
  import { SevereServiceError } from 'webdriverio';
4
4
  import type { Options, Capabilities, Services } from '@wdio/types';
5
+ import { CompilerOptions } from './constants.js';
5
6
  import type { ReplCommandArguments, Questionnair, SupportedPackage, OnCompleteResult, ParsedAnswers, ProjectProps } from './types.js';
6
7
  export declare const renderFile: (path: string, data: Record<string, any>) => Promise<string>;
7
8
  export declare class HookError extends SevereServiceError {
@@ -85,7 +86,7 @@ export declare function hasBabelConfig(rootDir: string): Promise<boolean>;
85
86
  /**
86
87
  * detect if project has a compiler file
87
88
  */
88
- export declare function detectCompiler(answers: Questionnair): Promise<"Babel (https://babeljs.io/)" | "TypeScript (https://www.typescriptlang.org/)" | "No!">;
89
+ export declare function detectCompiler(answers: Questionnair): Promise<CompilerOptions>;
89
90
  /**
90
91
  * Check if package is installed
91
92
  * @param {string} package to check existance for
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAetD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAGhD,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAMlE,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAQrI,eAAO,MAAM,UAAU,SAAuC,MAAM,QAAQ,OAAO,MAAM,EAAE,GAAG,CAAC,KAAK,QAAQ,MAAM,CAAC,CAAA;AAEnH,qBAAa,SAAU,SAAQ,kBAAkB;IACtC,MAAM,EAAE,MAAM,CAAA;gBACT,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI9C;AAED;;GAEG;AACH,wBAAsB,cAAc,CAChC,QAAQ,EAAE,QAAQ,CAAC,eAAe,EAAE,EACpC,QAAQ,EAAE,MAAM,QAAQ,CAAC,aAAa,EACtC,GAAG,IAAI,EAAE,GAAG,EAAE,sBA2BjB;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,yBAmBhF;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACnC,cAAc,EAAE,QAAQ,GAAG,QAAQ,EAAE,EACrC,MAAM,EAAE,OAAO,CAAC,UAAU,EAC1B,YAAY,EAAE,YAAY,CAAC,kBAAkB,EAC7C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,gBAAgB,sBAkB5B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,GAAE,YAAY,CAAC,mBAAwB,UAexE;AAoBD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,2BASxD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,sBAYvE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,UAAQ,QAmB3F;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,SAAS,GAAG,gBAAgB,CAGvF;AAED,wBAAsB,eAAe,CAAC,GAAG,EAAE,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+C9D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,YAAY,UAShF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,oBAU7C;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,YAAY,mGASzD;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,oBAO3C;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,aAAa,iBAM7D;AAGD,wBAAsB,8BAA8B,CAAC,OAAO,EAAE,aAAa,iBAiC1E;AAiCD,wBAAsB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAiFpE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM;;;;;EAwBrF;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,mBAW3E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,iBAAiB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAYlG;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,GAAG,SAAgB,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAkB5F;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,iBAehF;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,aAAa,EAAE,aAAa,8BAgCnE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAmFxF;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,aAAa,EAAE,aAAa,iBAoFjE;AAOD;;GAEG;AACH,wBAAsB,UAAU,CAAC,aAAa,EAAE,aAAa,iBA4C5D;AAED,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,aAAa,iBAgBlE;AAED,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,aAAa,oBAkBlE;AAED,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,aAAa,4DAoBpE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/build/utils.js CHANGED
@@ -18,7 +18,7 @@ import { resolve } from 'import-meta-resolve';
18
18
  import { SevereServiceError } from 'webdriverio';
19
19
  import { ConfigParser } from '@wdio/config';
20
20
  import { CAPABILITY_KEYS } from '@wdio/protocols';
21
- import { ANDROID_CONFIG, IOS_CONFIG, QUESTIONNAIRE, pkg, COMPILER_OPTIONS, TESTING_LIBRARY_PACKAGES, DEPENDENCIES_INSTALLATION_MESSAGE } from './constants.js';
21
+ import { ANDROID_CONFIG, IOS_CONFIG, QUESTIONNAIRE, pkg, CompilerOptions, TESTING_LIBRARY_PACKAGES, DEPENDENCIES_INSTALLATION_MESSAGE } from './constants.js';
22
22
  const log = logger('@wdio/cli:utils');
23
23
  const __dirname = dirname(fileURLToPath(import.meta.url));
24
24
  const NPM_COMMAND = /^win/.test(process.platform) ? 'npm.cmd' : 'npm';
@@ -265,10 +265,10 @@ export async function detectCompiler(answers) {
265
265
  const root = getProjectRoot(answers, projectProps);
266
266
  const rootTSConfigExist = await fs.access(path.resolve(root, 'tsconfig.json')).then(() => true, () => false);
267
267
  return (await hasBabelConfig(root))
268
- ? COMPILER_OPTIONS.babel // default to Babel
268
+ ? CompilerOptions.Babel // default to Babel
269
269
  : rootTSConfigExist
270
- ? COMPILER_OPTIONS.ts // default to TypeScript
271
- : COMPILER_OPTIONS.nil; // default to no compiler
270
+ ? CompilerOptions.TS // default to TypeScript
271
+ : CompilerOptions.Nil; // default to no compiler
272
272
  }
273
273
  /**
274
274
  * Check if package is installed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wdio/cli",
3
- "version": "8.14.2",
3
+ "version": "8.14.4",
4
4
  "description": "WebdriverIO testrunner command line interface",
5
5
  "author": "Christian Bromann <mail@bromann.dev>",
6
6
  "homepage": "https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-cli",
@@ -47,7 +47,7 @@
47
47
  "dependencies": {
48
48
  "@types/node": "^20.1.1",
49
49
  "@wdio/config": "8.14.0",
50
- "@wdio/globals": "8.14.2",
50
+ "@wdio/globals": "8.14.3",
51
51
  "@wdio/logger": "8.11.0",
52
52
  "@wdio/protocols": "8.11.0",
53
53
  "@wdio/types": "8.14.0",
@@ -65,7 +65,7 @@
65
65
  "lodash.union": "^4.6.0",
66
66
  "read-pkg-up": "10.0.0",
67
67
  "recursive-readdir": "^2.2.3",
68
- "webdriverio": "8.14.2",
68
+ "webdriverio": "8.14.3",
69
69
  "yargs": "^17.7.2",
70
70
  "yarn-install": "^1.0.0"
71
71
  },
@@ -82,5 +82,5 @@
82
82
  "publishConfig": {
83
83
  "access": "public"
84
84
  },
85
- "gitHead": "edfb885bbc0acf2770bf279b55156d776e052c75"
85
+ "gitHead": "3428f40f5ba4f257eddb0785ac1d5c4cc259a522"
86
86
  }