@wdio/cli 8.14.2 → 8.14.3
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/build/commands/config.d.ts.map +1 -1
- package/build/commands/config.js +4 -3
- package/build/constants.d.ts +70 -576
- package/build/constants.d.ts.map +1 -1
- package/build/constants.js +91 -80
- package/build/templates/exampleFiles/cucumber/step_definitions/steps.js.ejs +3 -0
- package/build/templates/exampleFiles/pageobjects/login.page.js.ejs +3 -2
- package/build/templates/exampleFiles/pageobjects/page.js.ejs +4 -0
- package/build/templates/exampleFiles/pageobjects/secure.page.js.ejs +3 -2
- package/build/templates/snippets/capabilities.ejs +3 -1
- package/build/templates/snippets/services.ejs +12 -1
- package/build/templates/snippets/testWithPO.js.ejs +3 -3
- package/build/templates/snippets/testWithoutPO.js.ejs +4 -3
- package/build/templates/snippets/vscodeTest.js.ejs +1 -1
- package/build/types.d.ts +5 -4
- package/build/types.d.ts.map +1 -1
- package/build/utils.d.ts +2 -1
- package/build/utils.d.ts.map +1 -1
- package/build/utils.js +4 -4
- package/package.json +4 -4
package/build/constants.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/build/constants.js
CHANGED
|
@@ -38,16 +38,12 @@ export const IOS_CONFIG = {
|
|
|
38
38
|
automationName: 'XCUITest',
|
|
39
39
|
deviceName: 'iPhone Simulator'
|
|
40
40
|
};
|
|
41
|
-
export
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
];
|
|
46
|
-
|
|
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
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
];
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
];
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
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,20 +187,18 @@ function isBrowserRunner(answers) {
|
|
|
188
187
|
function getTestingPurpose(answers) {
|
|
189
188
|
return convertPackageHashToObject(answers.runner).purpose;
|
|
190
189
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
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
|
|
198
|
+
return SUPPORTED_PACKAGES.service
|
|
203
199
|
/* istanbul ignore next */
|
|
204
|
-
({ name }) => serviceNames.includes(name))
|
|
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];
|
|
@@ -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:
|
|
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) =>
|
|
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 ===
|
|
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 ===
|
|
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 ===
|
|
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:
|
|
307
|
-
choices:
|
|
308
|
-
when: /* istanbul ignore next */ (answers) =>
|
|
309
|
-
|
|
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 ===
|
|
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 ===
|
|
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 ===
|
|
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 ===
|
|
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:
|
|
354
|
-
when: /* istanbul ignore next */ (answers) => answers.backend ===
|
|
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:
|
|
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:
|
|
471
|
-
|
|
472
|
-
|
|
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
|
-
|
|
475
|
-
|
|
482
|
+
if (answers.e2eEnvironment === 'mobile') {
|
|
483
|
+
services.push('appium');
|
|
476
484
|
}
|
|
477
|
-
|
|
478
|
-
|
|
485
|
+
if (getTestingPurpose(answers) === 'e2e' && isNuxtProject) {
|
|
486
|
+
services.push('nuxt');
|
|
479
487
|
}
|
|
480
|
-
|
|
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
|
-
|
|
490
|
-
return prioServiceOrderFor('nuxt');
|
|
491
|
-
}
|
|
492
|
-
return SUPPORTED_PACKAGES.service;
|
|
497
|
+
return prioServiceOrderFor(services);
|
|
493
498
|
},
|
|
494
|
-
default:
|
|
495
|
-
|
|
496
|
-
|
|
499
|
+
default: (answers) => {
|
|
500
|
+
const defaultServices = [];
|
|
501
|
+
if (answers.backend === BackendChoice.Browserstack) {
|
|
502
|
+
defaultServices.push('browserstack');
|
|
497
503
|
}
|
|
498
|
-
else if (answers.backend ===
|
|
499
|
-
|
|
504
|
+
else if (answers.backend === BackendChoice.Saucelabs) {
|
|
505
|
+
defaultServices.push('sauce');
|
|
500
506
|
}
|
|
501
|
-
|
|
502
|
-
|
|
507
|
+
if (answers.e2eEnvironment === 'mobile' || getTestingPurpose(answers) === 'macos') {
|
|
508
|
+
defaultServices.push('appium');
|
|
503
509
|
}
|
|
504
|
-
|
|
505
|
-
|
|
510
|
+
if (getTestingPurpose(answers) === 'vscode') {
|
|
511
|
+
defaultServices.push('vscode');
|
|
506
512
|
}
|
|
507
513
|
else if (getTestingPurpose(answers) === 'electron') {
|
|
508
|
-
|
|
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
|
|
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
|
|
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) =>
|
|
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
|
-
|
|
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
|
-
|
|
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`)
|
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 {
|
|
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?:
|
|
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?:
|
|
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:
|
|
27
|
+
isUsingCompiler: CompilerOptions;
|
|
27
28
|
reporters: string[];
|
|
28
29
|
services: string[];
|
|
29
30
|
plugins: string[];
|
package/build/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,
|
|
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<
|
|
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
|
package/build/utils.d.ts.map
CHANGED
|
@@ -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;
|
|
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,
|
|
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
|
-
?
|
|
268
|
+
? CompilerOptions.Babel // default to Babel
|
|
269
269
|
: rootTSConfigExist
|
|
270
|
-
?
|
|
271
|
-
:
|
|
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.
|
|
3
|
+
"version": "8.14.3",
|
|
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.
|
|
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.
|
|
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": "
|
|
85
|
+
"gitHead": "5229517c22d25975c0e5dd3207b307f770b87605"
|
|
86
86
|
}
|