@wdio/cli 9.0.0-alpha.9 → 9.0.0
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/repl.d.ts.map +1 -1
- package/build/commands/run.d.ts +14 -13
- package/build/commands/run.d.ts.map +1 -1
- package/build/constants.d.ts +83 -10
- package/build/constants.d.ts.map +1 -1
- package/build/index.cjs +46 -0
- package/build/index.d.cts +2 -0
- package/build/index.d.cts.map +1 -0
- package/build/index.js +3233 -4
- package/build/interface.d.ts +0 -1
- package/build/interface.d.ts.map +1 -1
- package/build/launcher.d.ts.map +1 -1
- package/build/run.d.ts.map +1 -1
- package/build/types.d.ts +3 -4
- package/build/types.d.ts.map +1 -1
- package/build/utils.d.ts +7 -11
- package/build/utils.d.ts.map +1 -1
- package/build/watcher.d.ts.map +1 -1
- package/package.json +20 -25
- package/build/cjs/index.d.ts +0 -2
- package/build/cjs/index.d.ts.map +0 -1
- package/build/cjs/index.js +0 -26
- package/build/cjs/package.json +0 -5
- package/build/commands/config.js +0 -197
- package/build/commands/index.js +0 -5
- package/build/commands/install.js +0 -109
- package/build/commands/repl.js +0 -50
- package/build/commands/run.js +0 -262
- package/build/constants.js +0 -909
- package/build/install.js +0 -38
- package/build/interface.js +0 -285
- package/build/launcher.js +0 -513
- package/build/run.js +0 -75
- package/build/templates/EjsHelpers.js +0 -59
- package/build/templates/EjsHelpers.ts +0 -84
- package/build/templates/exampleFiles/browser/Component.css.ejs +0 -121
- package/build/templates/exampleFiles/browser/Component.lit.ejs +0 -154
- package/build/templates/exampleFiles/browser/Component.lit.test.ejs +0 -24
- package/build/templates/exampleFiles/browser/Component.preact.ejs +0 -28
- package/build/templates/exampleFiles/browser/Component.preact.test.ejs +0 -59
- package/build/templates/exampleFiles/browser/Component.react.ejs +0 -29
- package/build/templates/exampleFiles/browser/Component.react.test.ejs +0 -58
- package/build/templates/exampleFiles/browser/Component.solid.ejs +0 -28
- package/build/templates/exampleFiles/browser/Component.solid.test.ejs +0 -58
- package/build/templates/exampleFiles/browser/Component.stencil.ejs +0 -43
- package/build/templates/exampleFiles/browser/Component.stencil.test.ejs +0 -45
- package/build/templates/exampleFiles/browser/Component.svelte.ejs +0 -47
- package/build/templates/exampleFiles/browser/Component.svelte.test.ejs +0 -58
- package/build/templates/exampleFiles/browser/Component.vue.ejs +0 -34
- package/build/templates/exampleFiles/browser/Component.vue.test.ejs +0 -62
- package/build/templates/exampleFiles/browser/standalone.test.ejs +0 -13
- package/build/templates/exampleFiles/cucumber/features/login.feature +0 -12
- package/build/templates/exampleFiles/cucumber/step_definitions/steps.js.ejs +0 -55
- package/build/templates/exampleFiles/mochaJasmine/test.e2e.js.ejs +0 -11
- package/build/templates/exampleFiles/pageobjects/login.page.js.ejs +0 -45
- package/build/templates/exampleFiles/pageobjects/page.js.ejs +0 -17
- package/build/templates/exampleFiles/pageobjects/secure.page.js.ejs +0 -20
- package/build/templates/exampleFiles/serenity-js/common/config/serenity.properties.ejs +0 -1
- package/build/templates/exampleFiles/serenity-js/common/serenity/github-api/GitHubStatus.ts.ejs +0 -41
- package/build/templates/exampleFiles/serenity-js/common/serenity/todo-list-app/TodoList.ts.ejs +0 -100
- package/build/templates/exampleFiles/serenity-js/common/serenity/todo-list-app/TodoListItem.ts.ejs +0 -36
- package/build/templates/exampleFiles/serenity-js/cucumber/step-definitions/steps.ts.ejs +0 -37
- package/build/templates/exampleFiles/serenity-js/cucumber/support/parameter.config.ts.ejs +0 -18
- package/build/templates/exampleFiles/serenity-js/cucumber/todo-list/completing_items.feature.ejs +0 -23
- package/build/templates/exampleFiles/serenity-js/cucumber/todo-list/narrative.md.ejs +0 -17
- package/build/templates/exampleFiles/serenity-js/jasmine/example.spec.ts.ejs +0 -86
- package/build/templates/exampleFiles/serenity-js/mocha/example.spec.ts.ejs +0 -88
- package/build/templates/snippets/afterTest.ejs +0 -20
- package/build/templates/snippets/capabilities.ejs +0 -57
- package/build/templates/snippets/cucumber.ejs +0 -50
- package/build/templates/snippets/electronTest.js.ejs +0 -7
- package/build/templates/snippets/jasmine.ejs +0 -20
- package/build/templates/snippets/macosTest.js.ejs +0 -11
- package/build/templates/snippets/mocha.ejs +0 -14
- package/build/templates/snippets/reporters.ejs +0 -14
- package/build/templates/snippets/serenity.ejs +0 -18
- package/build/templates/snippets/services.ejs +0 -18
- package/build/templates/snippets/testWithPO.js.ejs +0 -22
- package/build/templates/snippets/testWithoutPO.js.ejs +0 -19
- package/build/templates/snippets/vscodeTest.js.ejs +0 -9
- package/build/templates/wdio.conf.tpl.ejs +0 -422
- package/build/types.js +0 -1
- package/build/utils.js +0 -930
- package/build/watcher.js +0 -156
- /package/{LICENSE-MIT → LICENSE} +0 -0
package/build/interface.d.ts
CHANGED
package/build/interface.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../src/interface.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../src/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAK1C,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAMtC,UAAU,SAAS;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,UAAU,iBAAiB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,GAAG,CAAA;IACb,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,KAAK,CAAC,EAAE,SAAS,CAAA;CACpB;AAED,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,YAAY;;IA6BjD,OAAO,CAAC,OAAO;IACR,cAAc,EAAE,MAAM;IAC7B,OAAO,CAAC,YAAY;IA1BjB,cAAc,EAAE,OAAO,CAAA;IACvB,MAAM;;;;;MAKZ;IAED,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,qBAAqB,CAAQ;IAErC,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,SAAS,CAMZ;gBAGO,OAAO,EAAE,OAAO,CAAC,UAAU,EAC5B,cAAc,EAAE,MAAM,EACrB,YAAY,UAAQ;IA2BhC,KAAK;IAqBL,OAAO;IAcP,aAAa,CAAE,GAAG,EAAE,MAAM;IAI1B,WAAW,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,SAAI;IAKxD,UAAU,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,SAAI;IAIvD,aAAa,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,SAAI;IAI1D,UAAU,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG;IAI1C,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,SAAI,EAAE,OAAO,SAAK,EAAE,OAAO,GAAE,QAAmB;IAYrG,WAAW,CAAE,OAAO,EAAE,iBAAiB;IAUvC,YAAY,CAAE,KAAK,GAAE,MAAM,EAAO;IAOlC;;OAEG;IACH,MAAM,CAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,GAAG,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE;IASrE;;OAEG;IACH,QAAQ,CAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IA2BrF;;OAEG;IACH,GAAG,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAMnB,YAAY,CAAE,KAAK,EAAE,KAAK,GAAG,SAAS;IAOtC;;OAEG;IACH,SAAS,CAAE,KAAK,EAAE,iBAAiB;IAwDnC,aAAa;IAgBb,cAAc;IAYd,YAAY;IAsCZ,QAAQ;CAIX"}
|
package/build/launcher.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../src/launcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../src/launcher.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,KAAK,EAAyB,QAAQ,EAAE,MAAM,aAAa,CAAA;AAElE,OAAO,WAAW,MAAM,gBAAgB,CAAA;AAIxC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAiBrD,MAAM,WAAW,UAAU;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAA;CAClB;AAED,cAAM,QAAQ;IAkBN,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,YAAY;IAnBjB,YAAY,EAAE,YAAY,CAAA;IAC1B,aAAa,UAAQ;IACrB,qBAAqB,UAAQ;IAC7B,MAAM,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAA;IAChC,SAAS,CAAC,EAAE,WAAW,CAAA;IAE9B,OAAO,CAAC,SAAS,CAAI;IACrB,OAAO,CAAC,wBAAwB,CAAQ;IACxC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,cAAc,CAAI;IAC1B,OAAO,CAAC,aAAa,CAAI;IAEzB,OAAO,CAAC,SAAS,CAAC,CAA4B;IAC9C,OAAO,CAAC,QAAQ,CAAC,CAAU;gBAGf,eAAe,EAAE,MAAM,EACvB,KAAK,GAAE,OAAO,CAAC,mBAAmB,CAAM,EACxC,YAAY,UAAQ;IAKhC;;;OAGG;IACG,GAAG,IAAI,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;IA8GxC;;OAEG;IACH,OAAO,CAAC,QAAQ;IA+EhB;;OAEG;IACH,OAAO,CAAC,YAAY;IAiCpB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAmEjB;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAIpC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;;;;;OAMG;YACW,cAAc;IAuG5B,OAAO,CAAC,gBAAgB;IAWxB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAOpB;;;;;;OAMG;YACW,WAAW;IA0DzB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAcpB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAG7B;AAED,eAAe,QAAQ,CAAA"}
|
package/build/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAuBA,wBAA8B,GAAG,0BA2DhC"}
|
package/build/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Options, Reporters } from '@wdio/types';
|
|
2
2
|
import type { NormalizedPackageJson } from 'read-pkg-up';
|
|
3
|
-
import type { BackendChoice, RegionOptions,
|
|
3
|
+
import type { BackendChoice, RegionOptions, ElectronBuildToolChoice, PMs } from './constants.js';
|
|
4
4
|
export type PM = typeof PMs[number];
|
|
5
5
|
export interface Questionnair {
|
|
6
6
|
runner: string;
|
|
@@ -27,7 +27,7 @@ export interface Questionnair {
|
|
|
27
27
|
generateTestFiles: boolean;
|
|
28
28
|
usePageObjects?: boolean;
|
|
29
29
|
pages?: string;
|
|
30
|
-
|
|
30
|
+
isUsingTypeScript: boolean;
|
|
31
31
|
reporters: string[];
|
|
32
32
|
services: string[];
|
|
33
33
|
serenityLibPath?: string;
|
|
@@ -53,7 +53,6 @@ export interface ParsedAnswers extends Omit<Questionnair, 'runner' | 'framework'
|
|
|
53
53
|
services: string[];
|
|
54
54
|
packagesToInstall: string[];
|
|
55
55
|
isUsingTypeScript: boolean;
|
|
56
|
-
isUsingBabel: boolean;
|
|
57
56
|
serenityAdapter: string | false;
|
|
58
57
|
esmSupport: boolean;
|
|
59
58
|
isSync: boolean;
|
|
@@ -91,9 +90,9 @@ export interface RunCommandArguments {
|
|
|
91
90
|
mochaOpts?: WebdriverIO.MochaOpts;
|
|
92
91
|
jasmineOpts?: WebdriverIO.JasmineOpts;
|
|
93
92
|
cucumberOpts?: WebdriverIO.CucumberOpts;
|
|
94
|
-
autoCompileOpts?: Options.AutoCompileConfig;
|
|
95
93
|
configPath: string;
|
|
96
94
|
updateSnapshots?: Options.Testrunner['updateSnapshots'];
|
|
95
|
+
tsConfigPath?: string;
|
|
97
96
|
/**
|
|
98
97
|
* @internal
|
|
99
98
|
*/
|
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,aAAa,EAAE,aAAa,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
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
1
|
import type { SpawnOptions } from 'node:child_process';
|
|
3
2
|
import { SevereServiceError } from 'webdriverio';
|
|
4
3
|
import type { Capabilities, Options, Services } from '@wdio/types';
|
|
5
|
-
import { CompilerOptions } from './constants.js';
|
|
6
4
|
import type { OnCompleteResult, ParsedAnswers, ProjectProps, Questionnair, ReplCommandArguments, SupportedPackage } from './types.js';
|
|
7
5
|
export declare const renderFile: (path: string, data: Record<string, any>) => Promise<string>;
|
|
8
6
|
export declare class HookError extends SevereServiceError {
|
|
@@ -28,11 +26,11 @@ export declare function runLauncherHook(hook: Function | Function[], ...args: an
|
|
|
28
26
|
* @param {*} exitCode
|
|
29
27
|
* @param {*} results
|
|
30
28
|
*/
|
|
31
|
-
export declare function runOnCompleteHook(onCompleteHook: Function | Function[], config: Options.Testrunner, capabilities: Capabilities.
|
|
29
|
+
export declare function runOnCompleteHook(onCompleteHook: Function | Function[], config: Options.Testrunner, capabilities: Capabilities.TestrunnerCapabilities, exitCode: number, results: OnCompleteResult): Promise<(0 | 1)[]>;
|
|
32
30
|
/**
|
|
33
31
|
* get runner identification by caps
|
|
34
32
|
*/
|
|
35
|
-
export declare function getRunnerName(caps?: Capabilities
|
|
33
|
+
export declare function getRunnerName(caps?: WebdriverIO.Capabilities): string;
|
|
36
34
|
export declare function findInConfig(config: string, type: string): RegExpMatchArray | null;
|
|
37
35
|
export declare function replaceConfig(config: string, type: string, name: string): string | undefined;
|
|
38
36
|
export declare function addServiceDeps(names: SupportedPackage[], packages: string[], update?: boolean): void;
|
|
@@ -80,7 +78,7 @@ export declare function hasBabelConfig(rootDir: string): Promise<boolean>;
|
|
|
80
78
|
/**
|
|
81
79
|
* detect if project has a compiler file
|
|
82
80
|
*/
|
|
83
|
-
export declare function detectCompiler(answers: Questionnair): Promise<
|
|
81
|
+
export declare function detectCompiler(answers: Questionnair): Promise<boolean>;
|
|
84
82
|
/**
|
|
85
83
|
* Check if package is installed
|
|
86
84
|
* @param {string} package to check existance for
|
|
@@ -124,13 +122,9 @@ export declare function npmInstall(parsedAnswers: ParsedAnswers, npmTag: string)
|
|
|
124
122
|
*/
|
|
125
123
|
export declare function detectPackageManager(argv?: string[]): "npm" | "yarn" | "pnpm" | "bun";
|
|
126
124
|
/**
|
|
127
|
-
*
|
|
125
|
+
* set up TypeScript if it is desired but not installed
|
|
128
126
|
*/
|
|
129
127
|
export declare function setupTypeScript(parsedAnswers: ParsedAnswers): Promise<void>;
|
|
130
|
-
/**
|
|
131
|
-
* add @babel/register package if not installed
|
|
132
|
-
*/
|
|
133
|
-
export declare function setupBabel(parsedAnswers: ParsedAnswers): Promise<void>;
|
|
134
128
|
export declare function createWDIOConfig(parsedAnswers: ParsedAnswers): Promise<void>;
|
|
135
129
|
/**
|
|
136
130
|
* Get project root directory based on questionair answers
|
|
@@ -140,5 +134,7 @@ export declare function createWDIOConfig(parsedAnswers: ParsedAnswers): Promise<
|
|
|
140
134
|
*/
|
|
141
135
|
export declare function getProjectRoot(parsedAnswers?: Questionnair): Promise<string>;
|
|
142
136
|
export declare function createWDIOScript(parsedAnswers: ParsedAnswers): Promise<boolean>;
|
|
143
|
-
export declare function runAppiumInstaller(parsedAnswers: ParsedAnswers): Promise<void | import("execa").
|
|
137
|
+
export declare function runAppiumInstaller(parsedAnswers: ParsedAnswers): Promise<void | import("execa").Result<{
|
|
138
|
+
stdio: "inherit";
|
|
139
|
+
}>>;
|
|
144
140
|
//# sourceMappingURL=utils.d.ts.map
|
package/build/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAYtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAGhD,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAclE,OAAO,KAAK,EACR,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EACnB,MAAM,YAAY,CAAA;AASnB,eAAO,MAAM,UAAU,EAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,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,sBAAsB,EACjD,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,gBAAgB,sBAkB5B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,GAAE,WAAW,CAAC,YAAiB,UAehE;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,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE,CA0CnE;AAED,wBAAsB,eAAe,CAAC,GAAG,EAAE,oBAAoB;;;;;;;;;;;;;;;;;;;;;qBAzMsC,YAAa,YAAY;oBAE1H,YAGF,YACQ;;;;;;;GAkPT;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,oBAU7C;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,YAAY,oBAIzD;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,oBAO3C;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,aAAa,iBAU7D;AAGD,wBAAsB,8BAA8B,CAAC,OAAO,EAAE,aAAa,iBAiC1E;AA4DD,wBAAsB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAiFpE;AAaD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM;;;;;;EA0BrF;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,mBAU3E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,iBAAiB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAelG;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;AAMD,wBAAsB,UAAU,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBA+F5E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,WAAe,mCASvD;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,aAAa,EAAE,aAAa,iBA8GjE;AAOD,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,aAAa,iBAmBlE;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAE,aAAa,CAAC,EAAE,YAAY,mBASjE;AAED,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,aAAa,oBAoClE;AAED,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,aAAa;;IAoBpE"}
|
package/build/watcher.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAgB,OAAO,EAAE,MAAM,aAAa,CAAA;AAGxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAKvE,MAAM,CAAC,OAAO,OAAO,OAAO;IAKpB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,KAAK;IALjB,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,MAAM,CAAa;gBAGf,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,YAAY,CAAC;IAMpD,KAAK;
|
|
1
|
+
{"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAgB,OAAO,EAAE,MAAM,aAAa,CAAA;AAGxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAKvE,MAAM,CAAC,OAAO,OAAO,OAAO;IAKpB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,KAAK;IALjB,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,MAAM,CAAa;gBAGf,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,YAAY,CAAC;IAMpD,KAAK;IAmDX;;;;OAIG;IACH,eAAe,CAAE,UAAU,UAAO,UAChB,MAAM;IAgCxB;;;;;OAKG;IACH,UAAU,CAAE,SAAS,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU;IAqB7H;;;OAGG;IACH,GAAG,CAAE,MAAM,GAAE,OAAO,CAAC,mBAAmB,CAAM;IAqC9C,OAAO;CAGV"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wdio/cli",
|
|
3
|
-
"version": "9.0.0
|
|
3
|
+
"version": "9.0.0",
|
|
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",
|
|
@@ -11,9 +11,6 @@
|
|
|
11
11
|
"engines": {
|
|
12
12
|
"node": ">=18"
|
|
13
13
|
},
|
|
14
|
-
"scripts": {
|
|
15
|
-
"copy": "copyfiles -u 1 -V \"src/templates/**/*\" ./build/"
|
|
16
|
-
},
|
|
17
14
|
"repository": {
|
|
18
15
|
"type": "git",
|
|
19
16
|
"url": "git://github.com/webdriverio/webdriverio.git",
|
|
@@ -28,46 +25,44 @@
|
|
|
28
25
|
"bugs": {
|
|
29
26
|
"url": "https://github.com/webdriverio/webdriverio/issues"
|
|
30
27
|
},
|
|
31
|
-
"main": "./build/
|
|
28
|
+
"main": "./build/index.cjs",
|
|
32
29
|
"type": "module",
|
|
33
30
|
"module": "./build/index.js",
|
|
34
31
|
"types": "./build/index.d.ts",
|
|
35
32
|
"exports": {
|
|
36
|
-
".":
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
"./build/cjs/index.js"
|
|
43
|
-
],
|
|
44
|
-
"./package.json": "./package.json"
|
|
33
|
+
".": {
|
|
34
|
+
"types": "./build/index.d.ts",
|
|
35
|
+
"import": "./build/index.js",
|
|
36
|
+
"requireSource": "./src/index.cts",
|
|
37
|
+
"require": "./build/index.cjs"
|
|
38
|
+
}
|
|
45
39
|
},
|
|
46
40
|
"typeScriptVersion": "3.8.3",
|
|
47
41
|
"dependencies": {
|
|
48
42
|
"@types/node": "^20.1.1",
|
|
49
43
|
"@vitest/snapshot": "^1.2.1",
|
|
50
|
-
"@wdio/config": "9.0.0
|
|
51
|
-
"@wdio/globals": "9.0.0
|
|
52
|
-
"@wdio/logger": "9.0.0
|
|
53
|
-
"@wdio/protocols": "9.0.0
|
|
54
|
-
"@wdio/types": "9.0.0
|
|
55
|
-
"@wdio/utils": "9.0.0
|
|
44
|
+
"@wdio/config": "9.0.0",
|
|
45
|
+
"@wdio/globals": "9.0.0",
|
|
46
|
+
"@wdio/logger": "9.0.0",
|
|
47
|
+
"@wdio/protocols": "9.0.0",
|
|
48
|
+
"@wdio/types": "9.0.0",
|
|
49
|
+
"@wdio/utils": "9.0.0",
|
|
56
50
|
"async-exit-hook": "^2.0.1",
|
|
57
51
|
"chalk": "^5.2.0",
|
|
58
52
|
"chokidar": "^3.5.3",
|
|
59
|
-
"cli-spinners": "^
|
|
53
|
+
"cli-spinners": "^3.0.0",
|
|
60
54
|
"dotenv": "^16.3.1",
|
|
61
55
|
"ejs": "^3.1.9",
|
|
62
|
-
"execa": "^
|
|
56
|
+
"execa": "^9.2.0",
|
|
63
57
|
"import-meta-resolve": "^4.0.0",
|
|
64
|
-
"inquirer": "
|
|
58
|
+
"inquirer": "^10.1.8",
|
|
65
59
|
"lodash.flattendeep": "^4.4.0",
|
|
66
60
|
"lodash.pickby": "^4.6.0",
|
|
67
61
|
"lodash.union": "^4.6.0",
|
|
68
62
|
"read-pkg-up": "^10.0.0",
|
|
69
63
|
"recursive-readdir": "^2.2.3",
|
|
70
|
-
"
|
|
64
|
+
"tsx": "^4.7.2",
|
|
65
|
+
"webdriverio": "9.0.0",
|
|
71
66
|
"yargs": "^17.7.2"
|
|
72
67
|
},
|
|
73
68
|
"devDependencies": {
|
|
@@ -83,5 +78,5 @@
|
|
|
83
78
|
"publishConfig": {
|
|
84
79
|
"access": "public"
|
|
85
80
|
},
|
|
86
|
-
"gitHead": "
|
|
81
|
+
"gitHead": "957693463371a4cb329395dcdbce8fb0c930ab93"
|
|
87
82
|
}
|
package/build/cjs/index.d.ts
DELETED
package/build/cjs/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cjs/index.ts"],"names":[],"mappings":""}
|
package/build/cjs/index.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class Launcher {
|
|
4
|
-
configFilePath;
|
|
5
|
-
args;
|
|
6
|
-
isWatchMode;
|
|
7
|
-
#esmLauncher;
|
|
8
|
-
constructor(configFilePath, args = {}, isWatchMode = false) {
|
|
9
|
-
this.configFilePath = configFilePath;
|
|
10
|
-
this.args = args;
|
|
11
|
-
this.isWatchMode = isWatchMode;
|
|
12
|
-
this.#esmLauncher = import('../launcher.js').then(({ default: Launcher }) => new Launcher(this.configFilePath, this.args, this.isWatchMode));
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* run sequence
|
|
16
|
-
* @return {Promise} that only gets resolved with either an exitCode or an error
|
|
17
|
-
*/
|
|
18
|
-
async run() {
|
|
19
|
-
return (await this.#esmLauncher).run();
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
async function run() {
|
|
23
|
-
const { run } = await import('../index.js');
|
|
24
|
-
return run();
|
|
25
|
-
}
|
|
26
|
-
module.exports = { Launcher, run };
|
package/build/cjs/package.json
DELETED
package/build/commands/config.js
DELETED
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
import fs from 'node:fs/promises';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import inquirer from 'inquirer';
|
|
4
|
-
import { CONFIG_HELPER_INTRO, CLI_EPILOGUE, CompilerOptions, SUPPORTED_PACKAGES, configHelperSuccessMessage, isNuxtProject, SUPPORTED_CONFIG_FILE_EXTENSION, CONFIG_HELPER_SERENITY_BANNER, } from '../constants.js';
|
|
5
|
-
import { convertPackageHashToObject, getAnswers, getPathForFileGeneration, getProjectProps, getProjectRoot, createPackageJSON, setupTypeScript, setupBabel, npmInstall, createWDIOConfig, createWDIOScript, runAppiumInstaller, getSerenityPackages } from '../utils.js';
|
|
6
|
-
const hasYarnLock = await fs.access('yarn.lock').then(() => true, () => false);
|
|
7
|
-
export const command = 'config';
|
|
8
|
-
export const desc = 'Initialize WebdriverIO and setup configuration in your current project.';
|
|
9
|
-
export const cmdArgs = {
|
|
10
|
-
yarn: {
|
|
11
|
-
type: 'boolean',
|
|
12
|
-
desc: 'Install packages via Yarn package manager.',
|
|
13
|
-
default: hasYarnLock
|
|
14
|
-
},
|
|
15
|
-
yes: {
|
|
16
|
-
alias: 'y',
|
|
17
|
-
desc: 'will fill in all config defaults without prompting',
|
|
18
|
-
type: 'boolean',
|
|
19
|
-
default: false
|
|
20
|
-
},
|
|
21
|
-
npmTag: {
|
|
22
|
-
alias: 't',
|
|
23
|
-
desc: 'define NPM tag to use for WebdriverIO related packages',
|
|
24
|
-
type: 'string',
|
|
25
|
-
default: 'latest'
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
export const builder = (yargs) => {
|
|
29
|
-
return yargs
|
|
30
|
-
.options(cmdArgs)
|
|
31
|
-
.epilogue(CLI_EPILOGUE)
|
|
32
|
-
.help();
|
|
33
|
-
};
|
|
34
|
-
export const parseAnswers = async function (yes) {
|
|
35
|
-
console.log(CONFIG_HELPER_INTRO);
|
|
36
|
-
const answers = await getAnswers(yes);
|
|
37
|
-
const frameworkPackage = convertPackageHashToObject(answers.framework);
|
|
38
|
-
const runnerPackage = convertPackageHashToObject(answers.runner || SUPPORTED_PACKAGES.runner[0].value);
|
|
39
|
-
const servicePackages = answers.services.map((service) => convertPackageHashToObject(service));
|
|
40
|
-
const pluginPackages = answers.plugins.map((plugin) => convertPackageHashToObject(plugin));
|
|
41
|
-
const serenityPackages = getSerenityPackages(answers);
|
|
42
|
-
const reporterPackages = answers.reporters.map((reporter) => convertPackageHashToObject(reporter));
|
|
43
|
-
const presetPackage = convertPackageHashToObject(answers.preset || '');
|
|
44
|
-
const projectProps = await getProjectProps(process.cwd());
|
|
45
|
-
const projectRootDir = await getProjectRoot(answers);
|
|
46
|
-
const packagesToInstall = [
|
|
47
|
-
runnerPackage.package,
|
|
48
|
-
frameworkPackage.package,
|
|
49
|
-
presetPackage.package,
|
|
50
|
-
...reporterPackages.map(reporter => reporter.package),
|
|
51
|
-
...pluginPackages.map(plugin => plugin.package),
|
|
52
|
-
...servicePackages.map(service => service.package),
|
|
53
|
-
...serenityPackages,
|
|
54
|
-
].filter(Boolean);
|
|
55
|
-
/**
|
|
56
|
-
* find relative paths between tests and pages
|
|
57
|
-
*/
|
|
58
|
-
const hasRootTSConfig = await fs.access(path.resolve(projectRootDir, 'tsconfig.json')).then(() => true, () => false);
|
|
59
|
-
const tsConfigFilePath = !hasRootTSConfig
|
|
60
|
-
/**
|
|
61
|
-
* if no tsconfig.json exists in project, create one
|
|
62
|
-
*/
|
|
63
|
-
? path.resolve(projectRootDir, 'tsconfig.json')
|
|
64
|
-
/**
|
|
65
|
-
* otherwise make it dependent on whether the user wants to autogenerate files
|
|
66
|
-
*/
|
|
67
|
-
: answers.specs
|
|
68
|
-
/**
|
|
69
|
-
* if we have autogenerated spec files, put the tsconfig one above the spec file dir
|
|
70
|
-
*/
|
|
71
|
-
? path.resolve(path.dirname(answers.specs.split(path.sep).filter((s) => !s.includes('*')).join(path.sep)), 'tsconfig.json')
|
|
72
|
-
/**
|
|
73
|
-
* if no spec files are auto generated, create a wdio tsconfig and let the user deal with it
|
|
74
|
-
*/
|
|
75
|
-
: path.resolve(projectRootDir, `tsconfig.${runnerPackage.short === 'local' ? 'e2e' : 'wdio'}.json`);
|
|
76
|
-
const parsedPaths = getPathForFileGeneration(answers, projectRootDir);
|
|
77
|
-
const isUsingTypeScript = answers.isUsingCompiler === CompilerOptions.TS;
|
|
78
|
-
const wdioConfigFilename = `wdio.conf.${isUsingTypeScript ? 'ts' : 'js'}`;
|
|
79
|
-
const wdioConfigPath = path.resolve(projectRootDir, wdioConfigFilename);
|
|
80
|
-
return {
|
|
81
|
-
projectName: projectProps?.packageJson.name || 'Test Suite',
|
|
82
|
-
// default values required in templates
|
|
83
|
-
...({
|
|
84
|
-
usePageObjects: false,
|
|
85
|
-
installTestingLibrary: false
|
|
86
|
-
}),
|
|
87
|
-
...answers,
|
|
88
|
-
useSauceConnect: isNuxtProject || answers.useSauceConnect,
|
|
89
|
-
rawAnswers: answers,
|
|
90
|
-
runner: runnerPackage.short,
|
|
91
|
-
preset: presetPackage.short,
|
|
92
|
-
framework: frameworkPackage.short,
|
|
93
|
-
purpose: runnerPackage.purpose,
|
|
94
|
-
serenityAdapter: frameworkPackage.package === '@serenity-js/webdriverio' && frameworkPackage.purpose,
|
|
95
|
-
reporters: reporterPackages.map(({ short }) => short),
|
|
96
|
-
plugins: pluginPackages.map(({ short }) => short),
|
|
97
|
-
services: servicePackages.map(({ short }) => short),
|
|
98
|
-
specs: answers.specs && `./${path.relative(projectRootDir, answers.specs).replaceAll(path.sep, '/')}`,
|
|
99
|
-
stepDefinitions: answers.stepDefinitions && `./${path.relative(projectRootDir, answers.stepDefinitions).replaceAll(path.sep, '/')}`,
|
|
100
|
-
packagesToInstall,
|
|
101
|
-
isUsingTypeScript,
|
|
102
|
-
isUsingBabel: answers.isUsingCompiler === CompilerOptions.Babel,
|
|
103
|
-
esmSupport: projectProps && !(projectProps.esmSupported) ? false : true,
|
|
104
|
-
isSync: false,
|
|
105
|
-
_async: 'async ',
|
|
106
|
-
_await: 'await ',
|
|
107
|
-
projectRootDir,
|
|
108
|
-
destSpecRootPath: parsedPaths.destSpecRootPath,
|
|
109
|
-
destStepRootPath: parsedPaths.destStepRootPath,
|
|
110
|
-
destPageObjectRootPath: parsedPaths.destPageObjectRootPath,
|
|
111
|
-
destSerenityLibRootPath: parsedPaths.destSerenityLibRootPath,
|
|
112
|
-
relativePath: parsedPaths.relativePath,
|
|
113
|
-
hasRootTSConfig,
|
|
114
|
-
tsConfigFilePath,
|
|
115
|
-
tsProject: `./${path.relative(projectRootDir, tsConfigFilePath).replaceAll(path.sep, '/')}`,
|
|
116
|
-
wdioConfigPath
|
|
117
|
-
};
|
|
118
|
-
};
|
|
119
|
-
export async function runConfigCommand(parsedAnswers, npmTag) {
|
|
120
|
-
console.log('\n');
|
|
121
|
-
await createPackageJSON(parsedAnswers);
|
|
122
|
-
await setupTypeScript(parsedAnswers);
|
|
123
|
-
await setupBabel(parsedAnswers);
|
|
124
|
-
await npmInstall(parsedAnswers, npmTag);
|
|
125
|
-
await createWDIOConfig(parsedAnswers);
|
|
126
|
-
await createWDIOScript(parsedAnswers);
|
|
127
|
-
/**
|
|
128
|
-
* print success message
|
|
129
|
-
*/
|
|
130
|
-
console.log(configHelperSuccessMessage({
|
|
131
|
-
projectRootDir: parsedAnswers.projectRootDir,
|
|
132
|
-
runScript: parsedAnswers.serenityAdapter ? 'serenity' : 'wdio',
|
|
133
|
-
extraInfo: parsedAnswers.serenityAdapter ? CONFIG_HELPER_SERENITY_BANNER : ''
|
|
134
|
-
}));
|
|
135
|
-
await runAppiumInstaller(parsedAnswers);
|
|
136
|
-
}
|
|
137
|
-
export async function handler(argv, runConfigCmd = runConfigCommand) {
|
|
138
|
-
const parsedAnswers = await parseAnswers(argv.yes);
|
|
139
|
-
await runConfigCmd(parsedAnswers, argv.npmTag);
|
|
140
|
-
return {
|
|
141
|
-
success: true,
|
|
142
|
-
parsedAnswers,
|
|
143
|
-
installedPackages: parsedAnswers.packagesToInstall.map((pkg) => pkg.split('--')[0])
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Helper utility used in `run` and `install` command to format a provided config path,
|
|
148
|
-
* giving it back as an absolute path, and a version without the file extension
|
|
149
|
-
* @param config the initially given file path to the WDIO config file
|
|
150
|
-
*/
|
|
151
|
-
export async function formatConfigFilePaths(config) {
|
|
152
|
-
const fullPath = path.isAbsolute(config)
|
|
153
|
-
? config
|
|
154
|
-
: path.join(process.cwd(), config);
|
|
155
|
-
const fullPathNoExtension = fullPath.substring(0, fullPath.lastIndexOf(path.extname(fullPath)));
|
|
156
|
-
return { fullPath, fullPathNoExtension };
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Helper utility used in `run` and `install` command to check whether a config file currently exists
|
|
160
|
-
* @param configPath the file path to the WDIO config file
|
|
161
|
-
* @returns {string} the path to the config file that exists, otherwise undefined
|
|
162
|
-
*/
|
|
163
|
-
export async function canAccessConfigPath(configPath) {
|
|
164
|
-
return Promise.all(SUPPORTED_CONFIG_FILE_EXTENSION.map(async (supportedExtension) => {
|
|
165
|
-
const configPathWithExtension = `${configPath}.${supportedExtension}`;
|
|
166
|
-
return fs.access(configPathWithExtension).then(() => configPathWithExtension, () => undefined);
|
|
167
|
-
})).then((configFilePaths) => configFilePaths.find(Boolean), () => undefined);
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Helper utility used in `run` and `install` command to create config if none exist
|
|
171
|
-
* @param {string} command to be executed by user
|
|
172
|
-
* @param {string} configPath the path to a wdio.conf.[js/ts] file
|
|
173
|
-
* @param {boolean} useYarn parameter set to true if yarn is used
|
|
174
|
-
* @param {Function} runConfigCmd runConfig method to be replaceable for unit testing
|
|
175
|
-
*/
|
|
176
|
-
export async function missingConfigurationPrompt(command, configPath, runConfigCmd = runConfigCommand) {
|
|
177
|
-
const message = (`Could not execute "${command}" due to missing configuration, file ` +
|
|
178
|
-
`"${path.parse(configPath).name}[.js/.ts]" not found! ` +
|
|
179
|
-
'Would you like to create one?');
|
|
180
|
-
const { config } = await inquirer.prompt([{
|
|
181
|
-
type: 'confirm',
|
|
182
|
-
name: 'config',
|
|
183
|
-
message: message,
|
|
184
|
-
default: false
|
|
185
|
-
}]);
|
|
186
|
-
/**
|
|
187
|
-
* don't exit if running unit tests
|
|
188
|
-
*/
|
|
189
|
-
if (!config) {
|
|
190
|
-
/* istanbul ignore next */
|
|
191
|
-
console.log(`No WebdriverIO configuration found in "${process.cwd()}"`);
|
|
192
|
-
/* istanbul ignore next */
|
|
193
|
-
return !process.env.VITEST_WORKER_ID && process.exit(0);
|
|
194
|
-
}
|
|
195
|
-
const parsedAnswers = await parseAnswers(false);
|
|
196
|
-
await runConfigCmd(parsedAnswers, 'latest');
|
|
197
|
-
}
|
package/build/commands/index.js
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-console */
|
|
2
|
-
import fs from 'node:fs/promises';
|
|
3
|
-
import path from 'node:path';
|
|
4
|
-
import { getProjectRoot, replaceConfig, findInConfig, addServiceDeps, convertPackageHashToObject, detectPackageManager } from '../utils.js';
|
|
5
|
-
import { installPackages } from '../install.js';
|
|
6
|
-
import { formatConfigFilePaths, canAccessConfigPath, missingConfigurationPrompt } from './config.js';
|
|
7
|
-
import { SUPPORTED_PACKAGES, CLI_EPILOGUE } from '../constants.js';
|
|
8
|
-
const supportedInstallations = {
|
|
9
|
-
runner: SUPPORTED_PACKAGES.runner.map(({ value }) => convertPackageHashToObject(value)),
|
|
10
|
-
plugin: SUPPORTED_PACKAGES.plugin.map(({ value }) => convertPackageHashToObject(value)),
|
|
11
|
-
service: SUPPORTED_PACKAGES.service.map(({ value }) => convertPackageHashToObject(value)),
|
|
12
|
-
reporter: SUPPORTED_PACKAGES.reporter.map(({ value }) => convertPackageHashToObject(value)),
|
|
13
|
-
framework: SUPPORTED_PACKAGES.framework.map(({ value }) => convertPackageHashToObject(value))
|
|
14
|
-
};
|
|
15
|
-
export const command = 'install <type> <name>';
|
|
16
|
-
export const desc = [
|
|
17
|
-
'Add a `reporter`, `service`, or `framework` to your WebdriverIO project.',
|
|
18
|
-
'The command installs the package from NPM, adds it to your package.json',
|
|
19
|
-
'and modifies the wdio.conf.js accordingly.'
|
|
20
|
-
].join(' ');
|
|
21
|
-
export const cmdArgs = {
|
|
22
|
-
config: {
|
|
23
|
-
desc: 'Location of your WDIO configuration (default: wdio.conf.(js|ts|cjs|mjs))',
|
|
24
|
-
},
|
|
25
|
-
};
|
|
26
|
-
export const builder = (yargs) => {
|
|
27
|
-
yargs
|
|
28
|
-
.options(cmdArgs)
|
|
29
|
-
.epilogue(CLI_EPILOGUE)
|
|
30
|
-
.help();
|
|
31
|
-
for (const [type, plugins] of Object.entries(supportedInstallations)) {
|
|
32
|
-
for (const plugin of plugins) {
|
|
33
|
-
yargs.example(`$0 install ${type} ${plugin.short}`, `Install ${plugin.package}`);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return yargs;
|
|
37
|
-
};
|
|
38
|
-
export async function handler(argv) {
|
|
39
|
-
/**
|
|
40
|
-
* type = service | reporter | framework
|
|
41
|
-
* name = names for the supported service or reporter
|
|
42
|
-
*/
|
|
43
|
-
const { type, name, config } = argv;
|
|
44
|
-
/**
|
|
45
|
-
* verify for supported types via `supportedInstallations` keys
|
|
46
|
-
*/
|
|
47
|
-
if (!Object.keys(supportedInstallations).includes(type)) {
|
|
48
|
-
console.log(`Type ${type} is not supported.`);
|
|
49
|
-
process.exit(0);
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* verify if the name of the `type` is valid
|
|
54
|
-
*/
|
|
55
|
-
const options = supportedInstallations[type].map((pkg) => pkg.short);
|
|
56
|
-
if (!options.find((pkg) => pkg === name)) {
|
|
57
|
-
console.log(`Error: ${name} is not a supported ${type}.\n\n` +
|
|
58
|
-
`Available options for a ${type} are:\n` +
|
|
59
|
-
`- ${options.join('\n- ')}`);
|
|
60
|
-
process.exit(0);
|
|
61
|
-
// keep return for unit test purposes
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
const defaultPath = path.resolve(process.cwd(), 'wdio.conf');
|
|
65
|
-
const wdioConfPathWithNoExtension = config
|
|
66
|
-
? (await formatConfigFilePaths(config)).fullPathNoExtension
|
|
67
|
-
: defaultPath;
|
|
68
|
-
const wdioConfPath = await canAccessConfigPath(wdioConfPathWithNoExtension);
|
|
69
|
-
if (!wdioConfPath) {
|
|
70
|
-
try {
|
|
71
|
-
await missingConfigurationPrompt('install', wdioConfPathWithNoExtension);
|
|
72
|
-
return handler(argv);
|
|
73
|
-
}
|
|
74
|
-
catch {
|
|
75
|
-
process.exit(1);
|
|
76
|
-
// keep return for unit test purposes
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
const configFile = await fs.readFile(wdioConfPath, { encoding: 'utf-8' });
|
|
81
|
-
const match = findInConfig(configFile, type);
|
|
82
|
-
const projectRoot = await getProjectRoot();
|
|
83
|
-
if (match && match[0].includes(name)) {
|
|
84
|
-
console.log(`The ${type} ${name} is already part of your configuration.`);
|
|
85
|
-
process.exit(0);
|
|
86
|
-
// keep return for unit test purposes
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
const selectedPackage = supportedInstallations[type].find(({ short }) => short === name);
|
|
90
|
-
const pkgsToInstall = selectedPackage ? [selectedPackage.package] : [];
|
|
91
|
-
addServiceDeps(selectedPackage ? [selectedPackage] : [], pkgsToInstall, true);
|
|
92
|
-
const pm = detectPackageManager();
|
|
93
|
-
console.log(`Installing "${selectedPackage.package}" using ${pm}.`);
|
|
94
|
-
const success = await installPackages(projectRoot, pkgsToInstall, true);
|
|
95
|
-
if (!success) {
|
|
96
|
-
process.exit(1);
|
|
97
|
-
// keep return for unit test purposes
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
console.log(`Package "${selectedPackage.package}" installed successfully.`);
|
|
101
|
-
const newConfig = replaceConfig(configFile, type, name);
|
|
102
|
-
if (!newConfig) {
|
|
103
|
-
throw new Error(`Couldn't find "${type}" property in ${path.basename(wdioConfPath)}`);
|
|
104
|
-
}
|
|
105
|
-
await fs.writeFile(wdioConfPath, newConfig, { encoding: 'utf-8' });
|
|
106
|
-
console.log('Your wdio.conf.js file has been updated.');
|
|
107
|
-
process.exit(0);
|
|
108
|
-
}
|
|
109
|
-
/* eslint-enable no-console */
|