create-wdio 9.32.0-alpha.6 → 9.32.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/cli/utils.d.ts +12 -0
- package/build/cli/utils.d.ts.map +1 -1
- package/build/config/cli.js +132 -16
- package/build/constants.d.ts +18 -1
- package/build/constants.d.ts.map +1 -1
- package/build/index.js +37 -6
- package/build/install/cli.js +132 -16
- package/build/templates/snippets/capabilities.ejs +7 -0
- package/build/templates/snippets/services.ejs +13 -0
- package/build/templates/wdio.conf.tpl.ejs +4 -0
- package/build/types.d.ts +3 -1
- package/build/types.d.ts.map +1 -1
- package/build/utils/index.js +37 -6
- package/build/utils.d.ts.map +1 -1
- package/package.json +2 -2
package/build/cli/utils.d.ts
CHANGED
|
@@ -7,6 +7,18 @@ export declare function runConfigCommand(parsedAnswers: ParsedAnswers, npmTag: s
|
|
|
7
7
|
* @param {Function} runConfigCmd runConfig method to be replaceable for unit testing
|
|
8
8
|
*/
|
|
9
9
|
export declare function missingConfigurationPrompt(command: string, configPath: string, runConfigCmd?: Function): Promise<string>;
|
|
10
|
+
/**
|
|
11
|
+
* Resolve where the generated WDIO TypeScript config should live.
|
|
12
|
+
* Never overwrite an existing root `tsconfig.json` — when that would happen
|
|
13
|
+
* (for example a direct-child spec glob like `e2e/*.ts`), fall back to a
|
|
14
|
+
* dedicated `tsconfig.e2e.json` / `tsconfig.wdio.json`.
|
|
15
|
+
*/
|
|
16
|
+
export declare function resolveTsConfigFilePath({ projectRootDir, hasRootTSConfig, specs, runnerShort }: {
|
|
17
|
+
projectRootDir: string;
|
|
18
|
+
hasRootTSConfig: boolean;
|
|
19
|
+
specs?: string;
|
|
20
|
+
runnerShort: string;
|
|
21
|
+
}): string;
|
|
10
22
|
export declare const parseAnswers: (yes: boolean) => Promise<ParsedAnswers>;
|
|
11
23
|
/**
|
|
12
24
|
* Helper utility used in `run` and `install` command to check whether a config file currently exists
|
package/build/cli/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGhD,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGhD,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBAoClF;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,GAAE,QAA2B,mBA+B9H;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EACpC,cAAc,EACd,eAAe,EACf,KAAK,EACL,WAAW,EACd,EAAE;IACC,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,OAAO,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;CACtB,UAwBA;AAED,eAAO,MAAM,YAAY,GAAmB,KAAK,OAAO,KAAG,OAAO,CAAC,aAAa,CA2E/E,CAAA;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,qBAAqB,EAAC,MAAM,EAAE,UAAU,CAAC,EAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAC,SAAS,CAAC,CAcrH"}
|
package/build/config/cli.js
CHANGED
|
@@ -291,9 +291,6 @@ async function setupTypeScript(parsedAnswers) {
|
|
|
291
291
|
if (!parsedAnswers.isUsingTypeScript) {
|
|
292
292
|
return;
|
|
293
293
|
}
|
|
294
|
-
if (parsedAnswers.hasRootTSConfig) {
|
|
295
|
-
return;
|
|
296
|
-
}
|
|
297
294
|
console.log("Setting up TypeScript...");
|
|
298
295
|
const frameworkPackage = convertPackageHashToObject(parsedAnswers.rawAnswers.framework);
|
|
299
296
|
const servicePackages = parsedAnswers.rawAnswers.services.map((service) => convertPackageHashToObject(service));
|
|
@@ -360,11 +357,37 @@ async function setupTypeScript(parsedAnswers) {
|
|
|
360
357
|
jsxFragmentFactory: "Fragment"
|
|
361
358
|
} : {}
|
|
362
359
|
)
|
|
363
|
-
}
|
|
364
|
-
|
|
360
|
+
}
|
|
361
|
+
};
|
|
362
|
+
const tsConfigDir = path.dirname(parsedAnswers.tsConfigFilePath);
|
|
363
|
+
const toPosix = (value) => value.replace(/\\/g, "/");
|
|
364
|
+
const getRelativePath = (target) => {
|
|
365
|
+
const relativePath = toPosix(
|
|
366
|
+
path.relative(tsConfigDir, path.resolve(parsedAnswers.projectRootDir, target))
|
|
367
|
+
);
|
|
368
|
+
return relativePath || ".";
|
|
365
369
|
};
|
|
370
|
+
const toExtendsPath = (target) => {
|
|
371
|
+
const relativePath = getRelativePath(target);
|
|
372
|
+
if (relativePath === "." || relativePath.startsWith("./") || relativePath.startsWith("../") || path.isAbsolute(relativePath)) {
|
|
373
|
+
return relativePath;
|
|
374
|
+
}
|
|
375
|
+
return `./${relativePath}`;
|
|
376
|
+
};
|
|
377
|
+
if (parsedAnswers.hasRootTSConfig) {
|
|
378
|
+
config.extends = toExtendsPath("tsconfig.json");
|
|
379
|
+
}
|
|
380
|
+
const defaultSpecInclude = (parsedAnswers.destSpecRootPath && path.relative(parsedAnswers.projectRootDir, parsedAnswers.destSpecRootPath) || parsedAnswers.specs && path.dirname(
|
|
381
|
+
parsedAnswers.specs.split(/[\\/]/).filter((segment) => !segment.includes("*")).join(path.sep)
|
|
382
|
+
) || "test").replace(/\\/g, "/");
|
|
383
|
+
const defaultWdioConfigInclude = (parsedAnswers.wdioConfigPath && path.relative(parsedAnswers.projectRootDir, parsedAnswers.wdioConfigPath) || "wdio.conf.ts").replace(/\\/g, "/");
|
|
384
|
+
const baseIncludes = preset === "svelte" ? ["src/**/*.d.ts", "src/**/*.ts", "src/**/*.js", "src/**/*.svelte"] : preset === "vue" ? ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"] : [
|
|
385
|
+
defaultSpecInclude && defaultSpecInclude !== "." ? defaultSpecInclude : "test",
|
|
386
|
+
defaultWdioConfigInclude && defaultWdioConfigInclude !== "." ? defaultWdioConfigInclude : "wdio.conf.ts"
|
|
387
|
+
];
|
|
388
|
+
Object.assign(config, { include: baseIncludes.map(getRelativePath) });
|
|
366
389
|
if (parsedAnswers.framework === "cucumber") {
|
|
367
|
-
config.include.push("features");
|
|
390
|
+
config.include.push(getRelativePath("features"));
|
|
368
391
|
}
|
|
369
392
|
await fs.mkdir(path.dirname(parsedAnswers.tsConfigFilePath), { recursive: true });
|
|
370
393
|
await fs.writeFile(
|
|
@@ -669,7 +692,7 @@ async function formatConfigFilePaths(config) {
|
|
|
669
692
|
// package.json
|
|
670
693
|
var package_default = {
|
|
671
694
|
name: "create-wdio",
|
|
672
|
-
version: "9.31.
|
|
695
|
+
version: "9.31.6",
|
|
673
696
|
description: "Install and setup a WebdriverIO project with all its dependencies in a single run",
|
|
674
697
|
author: "WebdriverIO Team <mail@webdriver.io>",
|
|
675
698
|
homepage: "https://github.com/webdriverio/webdriverio/tree/main/packages/create-wdio",
|
|
@@ -781,7 +804,7 @@ var SUPPORTED_PACKAGES = {
|
|
|
781
804
|
runner: [
|
|
782
805
|
{ name: "E2E Testing - of Web or Mobile Applications", value: "@wdio/local-runner$--$local$--$e2e" },
|
|
783
806
|
{ name: "Component or Unit Testing - in the browser\n > https://webdriver.io/docs/component-testing", value: "@wdio/browser-runner$--$browser$--$component" },
|
|
784
|
-
{ name: "Desktop Testing - of Electron, Tauri, or macOS Applications\n > https://webdriver.io/docs/desktop-testing", value: "@wdio/local-runner$--$local$--$desktop" },
|
|
807
|
+
{ name: "Desktop Testing - of Electron, Tauri, Dioxus, or macOS Applications\n > https://webdriver.io/docs/desktop-testing", value: "@wdio/local-runner$--$local$--$desktop" },
|
|
785
808
|
{ name: "VS Code Extension Testing\n > https://webdriver.io/docs/vscode-extension-testing", value: "@wdio/local-runner$--$local$--$vscode" },
|
|
786
809
|
{ name: "Roku Testing - of OTT apps running on RokuOS\n > https://webdriver.io/docs/wdio-roku-service", value: "@wdio/local-runner$--$local$--$roku" }
|
|
787
810
|
],
|
|
@@ -835,6 +858,7 @@ var SUPPORTED_PACKAGES = {
|
|
|
835
858
|
{ name: "electron", value: "@wdio/electron-service$--$electron" },
|
|
836
859
|
{ name: "tauri", value: "@wdio/tauri-service$--$tauri" },
|
|
837
860
|
{ name: "tauri-plugin", value: "@wdio/tauri-plugin$--$tauri-plugin" },
|
|
861
|
+
{ name: "dioxus", value: "@wdio/dioxus-service$--$dioxus" },
|
|
838
862
|
{ name: "appium", value: "@wdio/appium-service$--$appium" },
|
|
839
863
|
// external
|
|
840
864
|
{ name: "camera", value: "wdio-camera-service$--$camera" },
|
|
@@ -866,7 +890,8 @@ var SUPPORTED_PACKAGES = {
|
|
|
866
890
|
{ name: "robonut", value: "wdio-robonut-service$--$robonut" },
|
|
867
891
|
{ name: "qunit", value: "wdio-qunit-service$--$qunit" },
|
|
868
892
|
{ name: "roku", value: "wdio-roku-service$--$roku" },
|
|
869
|
-
{ name: "obsidian", value: "wdio-obsidian-service$--$obsidian" }
|
|
893
|
+
{ name: "obsidian", value: "wdio-obsidian-service$--$obsidian" },
|
|
894
|
+
{ name: "null-driver", value: "wdio-null-driver-service$--$null-driver" }
|
|
870
895
|
]
|
|
871
896
|
};
|
|
872
897
|
var configHelperSuccessMessage = ({ projectRootDir, runScript, extraInfo = "" }) => `
|
|
@@ -954,6 +979,40 @@ function buildTauriBanner(driverProvider, useFrontendPlugin) {
|
|
|
954
979
|
);
|
|
955
980
|
return lines.join("\n");
|
|
956
981
|
}
|
|
982
|
+
function buildDioxusBanner(driverProvider) {
|
|
983
|
+
const lines = [
|
|
984
|
+
"",
|
|
985
|
+
"\u{1F980} Dioxus requires a couple of Rust-side additions before tests can run:",
|
|
986
|
+
"",
|
|
987
|
+
" 1. Add the WebdriverIO bridge crate to your Cargo.toml:",
|
|
988
|
+
"",
|
|
989
|
+
" [dependencies]",
|
|
990
|
+
' wdio-dioxus-bridge = "1"',
|
|
991
|
+
"",
|
|
992
|
+
" 2. Install it into your desktop config in `src/main.rs` (debug builds only):",
|
|
993
|
+
"",
|
|
994
|
+
" let mut config = dioxus::desktop::Config::new();",
|
|
995
|
+
" #[cfg(debug_assertions)]",
|
|
996
|
+
" {",
|
|
997
|
+
" config = wdio_dioxus_bridge::install(config);",
|
|
998
|
+
" }",
|
|
999
|
+
" dioxus::LaunchBuilder::desktop().with_cfg(config).launch(App);",
|
|
1000
|
+
""
|
|
1001
|
+
];
|
|
1002
|
+
if (driverProvider === "External driver via wdio-dioxus-driver (Windows only)" /* External */) {
|
|
1003
|
+
lines.push(
|
|
1004
|
+
" The `external` provider (Windows only) also needs the driver binary:",
|
|
1005
|
+
"",
|
|
1006
|
+
" cargo install wdio-dioxus-driver --locked",
|
|
1007
|
+
""
|
|
1008
|
+
);
|
|
1009
|
+
}
|
|
1010
|
+
lines.push(
|
|
1011
|
+
"Full Dioxus setup docs:",
|
|
1012
|
+
" \u{1F517} https://webdriver.io/docs/desktop-testing/dioxus"
|
|
1013
|
+
);
|
|
1014
|
+
return lines.join("\n");
|
|
1015
|
+
}
|
|
957
1016
|
var ProtocolOptions = /* @__PURE__ */ ((ProtocolOptions2) => {
|
|
958
1017
|
ProtocolOptions2["HTTPS"] = "https";
|
|
959
1018
|
ProtocolOptions2["HTTP"] = "http";
|
|
@@ -982,6 +1041,7 @@ var ElectronBuildToolChoice = /* @__PURE__ */ ((ElectronBuildToolChoice2) => {
|
|
|
982
1041
|
var DesktopFrameworkChoice = /* @__PURE__ */ ((DesktopFrameworkChoice2) => {
|
|
983
1042
|
DesktopFrameworkChoice2["Electron"] = "Electron (https://www.electronjs.org/)";
|
|
984
1043
|
DesktopFrameworkChoice2["Tauri"] = "Tauri (https://tauri.app/)";
|
|
1044
|
+
DesktopFrameworkChoice2["Dioxus"] = "Dioxus (https://dioxuslabs.com/)";
|
|
985
1045
|
DesktopFrameworkChoice2["MacOS"] = "Native macOS app";
|
|
986
1046
|
return DesktopFrameworkChoice2;
|
|
987
1047
|
})(DesktopFrameworkChoice || {});
|
|
@@ -991,6 +1051,11 @@ var TauriDriverProviderChoice = /* @__PURE__ */ ((TauriDriverProviderChoice2) =>
|
|
|
991
1051
|
TauriDriverProviderChoice2["Embedded"] = "Embedded driver via tauri-plugin-wdio-webdriver crate";
|
|
992
1052
|
return TauriDriverProviderChoice2;
|
|
993
1053
|
})(TauriDriverProviderChoice || {});
|
|
1054
|
+
var DioxusDriverProviderChoice = /* @__PURE__ */ ((DioxusDriverProviderChoice2) => {
|
|
1055
|
+
DioxusDriverProviderChoice2["Embedded"] = "Embedded in-process driver (recommended \u2014 no external driver, all platforms)";
|
|
1056
|
+
DioxusDriverProviderChoice2["External"] = "External driver via wdio-dioxus-driver (Windows only)";
|
|
1057
|
+
return DioxusDriverProviderChoice2;
|
|
1058
|
+
})(DioxusDriverProviderChoice || {});
|
|
994
1059
|
var SUPPORTED_BROWSER_RUNNER_PRESETS = [
|
|
995
1060
|
{ name: "Lit (https://lit.dev/)", value: "$--$" },
|
|
996
1061
|
{ name: "Vue.js (https://vuejs.org/)", value: "@vitejs/plugin-vue$--$vue" },
|
|
@@ -1015,6 +1080,8 @@ function getResolvedPurpose(answers) {
|
|
|
1015
1080
|
switch (answers.desktopFramework) {
|
|
1016
1081
|
case "Tauri (https://tauri.app/)" /* Tauri */:
|
|
1017
1082
|
return "tauri";
|
|
1083
|
+
case "Dioxus (https://dioxuslabs.com/)" /* Dioxus */:
|
|
1084
|
+
return "dioxus";
|
|
1018
1085
|
case "Native macOS app" /* MacOS */:
|
|
1019
1086
|
return "macos";
|
|
1020
1087
|
case "Electron (https://www.electronjs.org/)" /* Electron */:
|
|
@@ -1136,6 +1203,23 @@ var QUESTIONNAIRE = [{
|
|
|
1136
1203
|
/* istanbul ignore next */
|
|
1137
1204
|
(answers) => getResolvedPurpose(answers) === "tauri"
|
|
1138
1205
|
)
|
|
1206
|
+
}, {
|
|
1207
|
+
type: "list",
|
|
1208
|
+
name: "dioxusDriverProvider",
|
|
1209
|
+
message: "Which WebDriver provider would you like to use for Dioxus?",
|
|
1210
|
+
choices: Object.values(DioxusDriverProviderChoice),
|
|
1211
|
+
when: (
|
|
1212
|
+
/* istanbul ignore next */
|
|
1213
|
+
(answers) => getResolvedPurpose(answers) === "dioxus"
|
|
1214
|
+
)
|
|
1215
|
+
}, {
|
|
1216
|
+
type: "input",
|
|
1217
|
+
name: "dioxusAppBinaryPath",
|
|
1218
|
+
message: "Path to your built Dioxus debug binary (e.g. ./target/debug/my-app)?",
|
|
1219
|
+
when: (
|
|
1220
|
+
/* istanbul ignore next */
|
|
1221
|
+
(answers) => getResolvedPurpose(answers) === "dioxus"
|
|
1222
|
+
)
|
|
1139
1223
|
}, {
|
|
1140
1224
|
type: "list",
|
|
1141
1225
|
name: "backend",
|
|
@@ -1336,7 +1420,7 @@ var QUESTIONNAIRE = [{
|
|
|
1336
1420
|
if (isBrowserRunner(answers)) {
|
|
1337
1421
|
return SUPPORTED_PACKAGES.framework.slice(0, 1);
|
|
1338
1422
|
}
|
|
1339
|
-
if (["electron", "tauri"].includes(getResolvedPurpose(answers))) {
|
|
1423
|
+
if (["electron", "tauri", "dioxus"].includes(getResolvedPurpose(answers))) {
|
|
1340
1424
|
return SUPPORTED_PACKAGES.framework.filter(
|
|
1341
1425
|
({ value }) => !value.startsWith("@serenity-js")
|
|
1342
1426
|
);
|
|
@@ -1369,7 +1453,7 @@ var QUESTIONNAIRE = [{
|
|
|
1369
1453
|
when: (
|
|
1370
1454
|
/* istanbul ignore next */
|
|
1371
1455
|
(answers) => {
|
|
1372
|
-
if (["vscode", "electron", "tauri", "macos"].includes(getResolvedPurpose(answers)) && answers.framework.includes("cucumber")) {
|
|
1456
|
+
if (["vscode", "electron", "tauri", "dioxus", "macos"].includes(getResolvedPurpose(answers)) && answers.framework.includes("cucumber")) {
|
|
1373
1457
|
return false;
|
|
1374
1458
|
}
|
|
1375
1459
|
return true;
|
|
@@ -1422,7 +1506,7 @@ var QUESTIONNAIRE = [{
|
|
|
1422
1506
|
* and also not needed when running VS Code tests since the service comes with
|
|
1423
1507
|
* its own page object implementation, nor when running Electron or MacOS tests
|
|
1424
1508
|
*/
|
|
1425
|
-
!["vscode", "electron", "tauri", "macos"].includes(getResolvedPurpose(answers)) && /**
|
|
1509
|
+
!["vscode", "electron", "tauri", "dioxus", "macos"].includes(getResolvedPurpose(answers)) && /**
|
|
1426
1510
|
* Serenity/JS generates Lean Page Objects by default, so there's no need to ask about it
|
|
1427
1511
|
* See https://serenity-js.org/handbook/web-testing/page-objects-pattern/
|
|
1428
1512
|
*/
|
|
@@ -1505,6 +1589,8 @@ var QUESTIONNAIRE = [{
|
|
|
1505
1589
|
tauriEntries.push(SUPPORTED_PACKAGES.service.find(({ name }) => name === "tauri-plugin"));
|
|
1506
1590
|
}
|
|
1507
1591
|
return tauriEntries;
|
|
1592
|
+
} else if (getResolvedPurpose(answers) === "dioxus") {
|
|
1593
|
+
return [SUPPORTED_PACKAGES.service.find(({ name }) => name === "dioxus")];
|
|
1508
1594
|
} else if (getResolvedPurpose(answers) === "macos") {
|
|
1509
1595
|
return [SUPPORTED_PACKAGES.service.find(({ name }) => name === "appium")];
|
|
1510
1596
|
} else if (getResolvedPurpose(answers) === "roku") {
|
|
@@ -1531,6 +1617,8 @@ var QUESTIONNAIRE = [{
|
|
|
1531
1617
|
if (answers.tauriUseFrontendPlugin) {
|
|
1532
1618
|
defaultServices.push("tauri-plugin");
|
|
1533
1619
|
}
|
|
1620
|
+
} else if (getResolvedPurpose(answers) === "dioxus") {
|
|
1621
|
+
defaultServices.push("dioxus");
|
|
1534
1622
|
} else if (getResolvedPurpose(answers) === "roku") {
|
|
1535
1623
|
defaultServices.push("roku");
|
|
1536
1624
|
}
|
|
@@ -1609,6 +1697,11 @@ async function runConfigCommand(parsedAnswers, npmTag) {
|
|
|
1609
1697
|
parsedAnswers.rawAnswers.tauriUseFrontendPlugin
|
|
1610
1698
|
));
|
|
1611
1699
|
}
|
|
1700
|
+
if (parsedAnswers.purpose === "dioxus") {
|
|
1701
|
+
extraInfoParts.push(buildDioxusBanner(
|
|
1702
|
+
parsedAnswers.rawAnswers.dioxusDriverProvider
|
|
1703
|
+
));
|
|
1704
|
+
}
|
|
1612
1705
|
console.log(
|
|
1613
1706
|
configHelperSuccessMessage({
|
|
1614
1707
|
projectRootDir: parsedAnswers.projectRootDir,
|
|
@@ -1637,6 +1730,27 @@ async function missingConfigurationPrompt(command2, configPath, runConfigCmd = r
|
|
|
1637
1730
|
await runConfigCmd(parsedAnswers, "latest");
|
|
1638
1731
|
return configPath;
|
|
1639
1732
|
}
|
|
1733
|
+
function resolveTsConfigFilePath({
|
|
1734
|
+
projectRootDir,
|
|
1735
|
+
hasRootTSConfig,
|
|
1736
|
+
specs,
|
|
1737
|
+
runnerShort
|
|
1738
|
+
}) {
|
|
1739
|
+
const rootTsConfigPath = path3.resolve(projectRootDir, "tsconfig.json");
|
|
1740
|
+
const dedicatedTsConfigPath = path3.resolve(
|
|
1741
|
+
projectRootDir,
|
|
1742
|
+
`tsconfig.${runnerShort === "local" ? "e2e" : "wdio"}.json`
|
|
1743
|
+
);
|
|
1744
|
+
if (!hasRootTSConfig) {
|
|
1745
|
+
return rootTsConfigPath;
|
|
1746
|
+
}
|
|
1747
|
+
if (!specs) {
|
|
1748
|
+
return dedicatedTsConfigPath;
|
|
1749
|
+
}
|
|
1750
|
+
const specPathWithoutGlobs = specs.split(path3.sep).filter((segment) => !segment.includes("*")).join(path3.sep);
|
|
1751
|
+
const candidate = path3.resolve(projectRootDir, path3.dirname(specPathWithoutGlobs), "tsconfig.json");
|
|
1752
|
+
return path3.resolve(candidate) === rootTsConfigPath ? dedicatedTsConfigPath : candidate;
|
|
1753
|
+
}
|
|
1640
1754
|
var parseAnswers = async function(yes) {
|
|
1641
1755
|
console.log(CONFIG_HELPER_INTRO);
|
|
1642
1756
|
const answers = await getAnswers(yes);
|
|
@@ -1659,10 +1773,12 @@ var parseAnswers = async function(yes) {
|
|
|
1659
1773
|
...serenityPackages
|
|
1660
1774
|
].filter(Boolean);
|
|
1661
1775
|
const hasRootTSConfig = await fs3.access(path3.resolve(projectRootDir, "tsconfig.json")).then(() => true, () => false);
|
|
1662
|
-
const tsConfigFilePath =
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1776
|
+
const tsConfigFilePath = resolveTsConfigFilePath({
|
|
1777
|
+
projectRootDir,
|
|
1778
|
+
hasRootTSConfig,
|
|
1779
|
+
specs: answers.specs,
|
|
1780
|
+
runnerShort: runnerPackage.short
|
|
1781
|
+
});
|
|
1666
1782
|
const parsedPaths = getPathForFileGeneration(answers, projectRootDir);
|
|
1667
1783
|
const isUsingTypeScript = answers.isUsingTypeScript;
|
|
1668
1784
|
const wdioConfigFilename = `wdio.conf.${isUsingTypeScript ? "ts" : "js"}`;
|
package/build/constants.d.ts
CHANGED
|
@@ -60,6 +60,11 @@ export declare function usesSerenity(answers: Questionnair): boolean;
|
|
|
60
60
|
* but the Rust side (Cargo.toml + plugin registration) needs manual edits.
|
|
61
61
|
*/
|
|
62
62
|
export declare function buildTauriBanner(driverProvider: TauriDriverProviderChoice | undefined, useFrontendPlugin: boolean | undefined): string;
|
|
63
|
+
/**
|
|
64
|
+
* Build the post-install instructions for Dioxus users. The npm side is auto-installed,
|
|
65
|
+
* but the Rust side (the wdio-dioxus-bridge crate + its registration) needs manual edits.
|
|
66
|
+
*/
|
|
67
|
+
export declare function buildDioxusBanner(driverProvider: DioxusDriverProviderChoice | undefined): string;
|
|
63
68
|
declare enum ProtocolOptions {
|
|
64
69
|
HTTPS = "https",
|
|
65
70
|
HTTP = "http"
|
|
@@ -84,6 +89,7 @@ export declare enum ElectronBuildToolChoice {
|
|
|
84
89
|
export declare enum DesktopFrameworkChoice {
|
|
85
90
|
Electron = "Electron (https://www.electronjs.org/)",
|
|
86
91
|
Tauri = "Tauri (https://tauri.app/)",
|
|
92
|
+
Dioxus = "Dioxus (https://dioxuslabs.com/)",
|
|
87
93
|
MacOS = "Native macOS app"
|
|
88
94
|
}
|
|
89
95
|
export declare enum TauriDriverProviderChoice {
|
|
@@ -91,6 +97,10 @@ export declare enum TauriDriverProviderChoice {
|
|
|
91
97
|
CrabNebula = "CrabNebula tauri-driver (managed cloud / drop-in)",
|
|
92
98
|
Embedded = "Embedded driver via tauri-plugin-wdio-webdriver crate"
|
|
93
99
|
}
|
|
100
|
+
export declare enum DioxusDriverProviderChoice {
|
|
101
|
+
Embedded = "Embedded in-process driver (recommended \u2014 no external driver, all platforms)",
|
|
102
|
+
External = "External driver via wdio-dioxus-driver (Windows only)"
|
|
103
|
+
}
|
|
94
104
|
export declare const SUPPORTED_BROWSER_RUNNER_PRESETS: ({
|
|
95
105
|
name: string;
|
|
96
106
|
value: string;
|
|
@@ -99,7 +109,7 @@ export declare const SUPPORTED_BROWSER_RUNNER_PRESETS: ({
|
|
|
99
109
|
value: null;
|
|
100
110
|
})[];
|
|
101
111
|
declare function isBrowserRunner(answers: Questionnair): boolean;
|
|
102
|
-
export declare function getResolvedPurpose(answers: Questionnair): "e2e" | "vscode" | "electron" | "tauri" | "roku" | "component" | "macos";
|
|
112
|
+
export declare function getResolvedPurpose(answers: Questionnair): "e2e" | "vscode" | "electron" | "tauri" | "dioxus" | "roku" | "component" | "macos";
|
|
103
113
|
export declare const TESTING_LIBRARY_PACKAGES: Record<string, string>;
|
|
104
114
|
export declare const E2E_ENVIRONMENTS: {
|
|
105
115
|
name: string;
|
|
@@ -176,6 +186,13 @@ export declare const QUESTIONNAIRE: ({
|
|
|
176
186
|
default: boolean;
|
|
177
187
|
when: (answers: Questionnair) => boolean;
|
|
178
188
|
choices?: undefined;
|
|
189
|
+
} | {
|
|
190
|
+
type: string;
|
|
191
|
+
name: string;
|
|
192
|
+
message: string;
|
|
193
|
+
choices: DioxusDriverProviderChoice[];
|
|
194
|
+
when: (answers: Questionnair) => boolean;
|
|
195
|
+
default?: undefined;
|
|
179
196
|
} | {
|
|
180
197
|
type: string;
|
|
181
198
|
name: string;
|
package/build/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,iBAAiB,CAAqB;AAGtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAG9C,OAAO,EAAE,GAAG,EAAE,CAAA;AAEd,eAAO,MAAM,WAAW,+BAA6B,CAAA;AACrD,eAAO,MAAM,OAAO,+BAAwB,CAAA;AAC5C,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;AAE7D,eAAO,MAAM,eAAe,WAAW,CAAA;AACvC,eAAO,MAAM,WAAW,w2EAwCvB,CAAA;AAED,eAAO,MAAM,aAAa,QAIzB,CAAA;AAED,eAAO,MAAM,wBAAwB,QAIpC,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAKlD,CAAA;AAEV,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAK3C,CAAA;AAEV,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAKlD,CAAA;AAEV,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAK3C,CAAA;AAEV,eAAO,MAAM,0BAA0B,EAAmC,eAAe,EAAE,CAAA;AAE3F,eAAO,MAAM,mBAAmB,8HAI/B,CAAA;AAED,eAAO,MAAM,YAAY,QAAqE,CAAA;AAE9F;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
package/build/index.js
CHANGED
|
@@ -24,7 +24,7 @@ import spawn from "cross-spawn";
|
|
|
24
24
|
// package.json
|
|
25
25
|
var package_default = {
|
|
26
26
|
name: "create-wdio",
|
|
27
|
-
version: "9.31.
|
|
27
|
+
version: "9.31.6",
|
|
28
28
|
description: "Install and setup a WebdriverIO project with all its dependencies in a single run",
|
|
29
29
|
author: "WebdriverIO Team <mail@webdriver.io>",
|
|
30
30
|
homepage: "https://github.com/webdriverio/webdriverio/tree/main/packages/create-wdio",
|
|
@@ -191,7 +191,7 @@ var SUPPORTED_PACKAGES = {
|
|
|
191
191
|
runner: [
|
|
192
192
|
{ name: "E2E Testing - of Web or Mobile Applications", value: "@wdio/local-runner$--$local$--$e2e" },
|
|
193
193
|
{ name: "Component or Unit Testing - in the browser\n > https://webdriver.io/docs/component-testing", value: "@wdio/browser-runner$--$browser$--$component" },
|
|
194
|
-
{ name: "Desktop Testing - of Electron, Tauri, or macOS Applications\n > https://webdriver.io/docs/desktop-testing", value: "@wdio/local-runner$--$local$--$desktop" },
|
|
194
|
+
{ name: "Desktop Testing - of Electron, Tauri, Dioxus, or macOS Applications\n > https://webdriver.io/docs/desktop-testing", value: "@wdio/local-runner$--$local$--$desktop" },
|
|
195
195
|
{ name: "VS Code Extension Testing\n > https://webdriver.io/docs/vscode-extension-testing", value: "@wdio/local-runner$--$local$--$vscode" },
|
|
196
196
|
{ name: "Roku Testing - of OTT apps running on RokuOS\n > https://webdriver.io/docs/wdio-roku-service", value: "@wdio/local-runner$--$local$--$roku" }
|
|
197
197
|
],
|
|
@@ -245,6 +245,7 @@ var SUPPORTED_PACKAGES = {
|
|
|
245
245
|
{ name: "electron", value: "@wdio/electron-service$--$electron" },
|
|
246
246
|
{ name: "tauri", value: "@wdio/tauri-service$--$tauri" },
|
|
247
247
|
{ name: "tauri-plugin", value: "@wdio/tauri-plugin$--$tauri-plugin" },
|
|
248
|
+
{ name: "dioxus", value: "@wdio/dioxus-service$--$dioxus" },
|
|
248
249
|
{ name: "appium", value: "@wdio/appium-service$--$appium" },
|
|
249
250
|
// external
|
|
250
251
|
{ name: "camera", value: "wdio-camera-service$--$camera" },
|
|
@@ -276,7 +277,8 @@ var SUPPORTED_PACKAGES = {
|
|
|
276
277
|
{ name: "robonut", value: "wdio-robonut-service$--$robonut" },
|
|
277
278
|
{ name: "qunit", value: "wdio-qunit-service$--$qunit" },
|
|
278
279
|
{ name: "roku", value: "wdio-roku-service$--$roku" },
|
|
279
|
-
{ name: "obsidian", value: "wdio-obsidian-service$--$obsidian" }
|
|
280
|
+
{ name: "obsidian", value: "wdio-obsidian-service$--$obsidian" },
|
|
281
|
+
{ name: "null-driver", value: "wdio-null-driver-service$--$null-driver" }
|
|
280
282
|
]
|
|
281
283
|
};
|
|
282
284
|
var isNuxtProject = [
|
|
@@ -323,6 +325,7 @@ var ElectronBuildToolChoice = /* @__PURE__ */ ((ElectronBuildToolChoice2) => {
|
|
|
323
325
|
var DesktopFrameworkChoice = /* @__PURE__ */ ((DesktopFrameworkChoice2) => {
|
|
324
326
|
DesktopFrameworkChoice2["Electron"] = "Electron (https://www.electronjs.org/)";
|
|
325
327
|
DesktopFrameworkChoice2["Tauri"] = "Tauri (https://tauri.app/)";
|
|
328
|
+
DesktopFrameworkChoice2["Dioxus"] = "Dioxus (https://dioxuslabs.com/)";
|
|
326
329
|
DesktopFrameworkChoice2["MacOS"] = "Native macOS app";
|
|
327
330
|
return DesktopFrameworkChoice2;
|
|
328
331
|
})(DesktopFrameworkChoice || {});
|
|
@@ -332,6 +335,11 @@ var TauriDriverProviderChoice = /* @__PURE__ */ ((TauriDriverProviderChoice2) =>
|
|
|
332
335
|
TauriDriverProviderChoice2["Embedded"] = "Embedded driver via tauri-plugin-wdio-webdriver crate";
|
|
333
336
|
return TauriDriverProviderChoice2;
|
|
334
337
|
})(TauriDriverProviderChoice || {});
|
|
338
|
+
var DioxusDriverProviderChoice = /* @__PURE__ */ ((DioxusDriverProviderChoice2) => {
|
|
339
|
+
DioxusDriverProviderChoice2["Embedded"] = "Embedded in-process driver (recommended \u2014 no external driver, all platforms)";
|
|
340
|
+
DioxusDriverProviderChoice2["External"] = "External driver via wdio-dioxus-driver (Windows only)";
|
|
341
|
+
return DioxusDriverProviderChoice2;
|
|
342
|
+
})(DioxusDriverProviderChoice || {});
|
|
335
343
|
var SUPPORTED_BROWSER_RUNNER_PRESETS = [
|
|
336
344
|
{ name: "Lit (https://lit.dev/)", value: "$--$" },
|
|
337
345
|
{ name: "Vue.js (https://vuejs.org/)", value: "@vitejs/plugin-vue$--$vue" },
|
|
@@ -356,6 +364,8 @@ function getResolvedPurpose(answers) {
|
|
|
356
364
|
switch (answers.desktopFramework) {
|
|
357
365
|
case "Tauri (https://tauri.app/)" /* Tauri */:
|
|
358
366
|
return "tauri";
|
|
367
|
+
case "Dioxus (https://dioxuslabs.com/)" /* Dioxus */:
|
|
368
|
+
return "dioxus";
|
|
359
369
|
case "Native macOS app" /* MacOS */:
|
|
360
370
|
return "macos";
|
|
361
371
|
case "Electron (https://www.electronjs.org/)" /* Electron */:
|
|
@@ -477,6 +487,23 @@ var QUESTIONNAIRE = [{
|
|
|
477
487
|
/* istanbul ignore next */
|
|
478
488
|
(answers) => getResolvedPurpose(answers) === "tauri"
|
|
479
489
|
)
|
|
490
|
+
}, {
|
|
491
|
+
type: "list",
|
|
492
|
+
name: "dioxusDriverProvider",
|
|
493
|
+
message: "Which WebDriver provider would you like to use for Dioxus?",
|
|
494
|
+
choices: Object.values(DioxusDriverProviderChoice),
|
|
495
|
+
when: (
|
|
496
|
+
/* istanbul ignore next */
|
|
497
|
+
(answers) => getResolvedPurpose(answers) === "dioxus"
|
|
498
|
+
)
|
|
499
|
+
}, {
|
|
500
|
+
type: "input",
|
|
501
|
+
name: "dioxusAppBinaryPath",
|
|
502
|
+
message: "Path to your built Dioxus debug binary (e.g. ./target/debug/my-app)?",
|
|
503
|
+
when: (
|
|
504
|
+
/* istanbul ignore next */
|
|
505
|
+
(answers) => getResolvedPurpose(answers) === "dioxus"
|
|
506
|
+
)
|
|
480
507
|
}, {
|
|
481
508
|
type: "list",
|
|
482
509
|
name: "backend",
|
|
@@ -677,7 +704,7 @@ var QUESTIONNAIRE = [{
|
|
|
677
704
|
if (isBrowserRunner(answers)) {
|
|
678
705
|
return SUPPORTED_PACKAGES.framework.slice(0, 1);
|
|
679
706
|
}
|
|
680
|
-
if (["electron", "tauri"].includes(getResolvedPurpose(answers))) {
|
|
707
|
+
if (["electron", "tauri", "dioxus"].includes(getResolvedPurpose(answers))) {
|
|
681
708
|
return SUPPORTED_PACKAGES.framework.filter(
|
|
682
709
|
({ value }) => !value.startsWith("@serenity-js")
|
|
683
710
|
);
|
|
@@ -710,7 +737,7 @@ var QUESTIONNAIRE = [{
|
|
|
710
737
|
when: (
|
|
711
738
|
/* istanbul ignore next */
|
|
712
739
|
(answers) => {
|
|
713
|
-
if (["vscode", "electron", "tauri", "macos"].includes(getResolvedPurpose(answers)) && answers.framework.includes("cucumber")) {
|
|
740
|
+
if (["vscode", "electron", "tauri", "dioxus", "macos"].includes(getResolvedPurpose(answers)) && answers.framework.includes("cucumber")) {
|
|
714
741
|
return false;
|
|
715
742
|
}
|
|
716
743
|
return true;
|
|
@@ -763,7 +790,7 @@ var QUESTIONNAIRE = [{
|
|
|
763
790
|
* and also not needed when running VS Code tests since the service comes with
|
|
764
791
|
* its own page object implementation, nor when running Electron or MacOS tests
|
|
765
792
|
*/
|
|
766
|
-
!["vscode", "electron", "tauri", "macos"].includes(getResolvedPurpose(answers)) && /**
|
|
793
|
+
!["vscode", "electron", "tauri", "dioxus", "macos"].includes(getResolvedPurpose(answers)) && /**
|
|
767
794
|
* Serenity/JS generates Lean Page Objects by default, so there's no need to ask about it
|
|
768
795
|
* See https://serenity-js.org/handbook/web-testing/page-objects-pattern/
|
|
769
796
|
*/
|
|
@@ -846,6 +873,8 @@ var QUESTIONNAIRE = [{
|
|
|
846
873
|
tauriEntries.push(SUPPORTED_PACKAGES.service.find(({ name }) => name === "tauri-plugin"));
|
|
847
874
|
}
|
|
848
875
|
return tauriEntries;
|
|
876
|
+
} else if (getResolvedPurpose(answers) === "dioxus") {
|
|
877
|
+
return [SUPPORTED_PACKAGES.service.find(({ name }) => name === "dioxus")];
|
|
849
878
|
} else if (getResolvedPurpose(answers) === "macos") {
|
|
850
879
|
return [SUPPORTED_PACKAGES.service.find(({ name }) => name === "appium")];
|
|
851
880
|
} else if (getResolvedPurpose(answers) === "roku") {
|
|
@@ -872,6 +901,8 @@ var QUESTIONNAIRE = [{
|
|
|
872
901
|
if (answers.tauriUseFrontendPlugin) {
|
|
873
902
|
defaultServices.push("tauri-plugin");
|
|
874
903
|
}
|
|
904
|
+
} else if (getResolvedPurpose(answers) === "dioxus") {
|
|
905
|
+
defaultServices.push("dioxus");
|
|
875
906
|
} else if (getResolvedPurpose(answers) === "roku") {
|
|
876
907
|
defaultServices.push("roku");
|
|
877
908
|
}
|
package/build/install/cli.js
CHANGED
|
@@ -85,7 +85,7 @@ import spawn from "cross-spawn";
|
|
|
85
85
|
// package.json
|
|
86
86
|
var package_default = {
|
|
87
87
|
name: "create-wdio",
|
|
88
|
-
version: "9.31.
|
|
88
|
+
version: "9.31.6",
|
|
89
89
|
description: "Install and setup a WebdriverIO project with all its dependencies in a single run",
|
|
90
90
|
author: "WebdriverIO Team <mail@webdriver.io>",
|
|
91
91
|
homepage: "https://github.com/webdriverio/webdriverio/tree/main/packages/create-wdio",
|
|
@@ -197,7 +197,7 @@ var SUPPORTED_PACKAGES = {
|
|
|
197
197
|
runner: [
|
|
198
198
|
{ name: "E2E Testing - of Web or Mobile Applications", value: "@wdio/local-runner$--$local$--$e2e" },
|
|
199
199
|
{ name: "Component or Unit Testing - in the browser\n > https://webdriver.io/docs/component-testing", value: "@wdio/browser-runner$--$browser$--$component" },
|
|
200
|
-
{ name: "Desktop Testing - of Electron, Tauri, or macOS Applications\n > https://webdriver.io/docs/desktop-testing", value: "@wdio/local-runner$--$local$--$desktop" },
|
|
200
|
+
{ name: "Desktop Testing - of Electron, Tauri, Dioxus, or macOS Applications\n > https://webdriver.io/docs/desktop-testing", value: "@wdio/local-runner$--$local$--$desktop" },
|
|
201
201
|
{ name: "VS Code Extension Testing\n > https://webdriver.io/docs/vscode-extension-testing", value: "@wdio/local-runner$--$local$--$vscode" },
|
|
202
202
|
{ name: "Roku Testing - of OTT apps running on RokuOS\n > https://webdriver.io/docs/wdio-roku-service", value: "@wdio/local-runner$--$local$--$roku" }
|
|
203
203
|
],
|
|
@@ -251,6 +251,7 @@ var SUPPORTED_PACKAGES = {
|
|
|
251
251
|
{ name: "electron", value: "@wdio/electron-service$--$electron" },
|
|
252
252
|
{ name: "tauri", value: "@wdio/tauri-service$--$tauri" },
|
|
253
253
|
{ name: "tauri-plugin", value: "@wdio/tauri-plugin$--$tauri-plugin" },
|
|
254
|
+
{ name: "dioxus", value: "@wdio/dioxus-service$--$dioxus" },
|
|
254
255
|
{ name: "appium", value: "@wdio/appium-service$--$appium" },
|
|
255
256
|
// external
|
|
256
257
|
{ name: "camera", value: "wdio-camera-service$--$camera" },
|
|
@@ -282,7 +283,8 @@ var SUPPORTED_PACKAGES = {
|
|
|
282
283
|
{ name: "robonut", value: "wdio-robonut-service$--$robonut" },
|
|
283
284
|
{ name: "qunit", value: "wdio-qunit-service$--$qunit" },
|
|
284
285
|
{ name: "roku", value: "wdio-roku-service$--$roku" },
|
|
285
|
-
{ name: "obsidian", value: "wdio-obsidian-service$--$obsidian" }
|
|
286
|
+
{ name: "obsidian", value: "wdio-obsidian-service$--$obsidian" },
|
|
287
|
+
{ name: "null-driver", value: "wdio-null-driver-service$--$null-driver" }
|
|
286
288
|
]
|
|
287
289
|
};
|
|
288
290
|
var configHelperSuccessMessage = ({ projectRootDir, runScript, extraInfo = "" }) => `
|
|
@@ -370,6 +372,40 @@ function buildTauriBanner(driverProvider, useFrontendPlugin) {
|
|
|
370
372
|
);
|
|
371
373
|
return lines.join("\n");
|
|
372
374
|
}
|
|
375
|
+
function buildDioxusBanner(driverProvider) {
|
|
376
|
+
const lines = [
|
|
377
|
+
"",
|
|
378
|
+
"\u{1F980} Dioxus requires a couple of Rust-side additions before tests can run:",
|
|
379
|
+
"",
|
|
380
|
+
" 1. Add the WebdriverIO bridge crate to your Cargo.toml:",
|
|
381
|
+
"",
|
|
382
|
+
" [dependencies]",
|
|
383
|
+
' wdio-dioxus-bridge = "1"',
|
|
384
|
+
"",
|
|
385
|
+
" 2. Install it into your desktop config in `src/main.rs` (debug builds only):",
|
|
386
|
+
"",
|
|
387
|
+
" let mut config = dioxus::desktop::Config::new();",
|
|
388
|
+
" #[cfg(debug_assertions)]",
|
|
389
|
+
" {",
|
|
390
|
+
" config = wdio_dioxus_bridge::install(config);",
|
|
391
|
+
" }",
|
|
392
|
+
" dioxus::LaunchBuilder::desktop().with_cfg(config).launch(App);",
|
|
393
|
+
""
|
|
394
|
+
];
|
|
395
|
+
if (driverProvider === "External driver via wdio-dioxus-driver (Windows only)" /* External */) {
|
|
396
|
+
lines.push(
|
|
397
|
+
" The `external` provider (Windows only) also needs the driver binary:",
|
|
398
|
+
"",
|
|
399
|
+
" cargo install wdio-dioxus-driver --locked",
|
|
400
|
+
""
|
|
401
|
+
);
|
|
402
|
+
}
|
|
403
|
+
lines.push(
|
|
404
|
+
"Full Dioxus setup docs:",
|
|
405
|
+
" \u{1F517} https://webdriver.io/docs/desktop-testing/dioxus"
|
|
406
|
+
);
|
|
407
|
+
return lines.join("\n");
|
|
408
|
+
}
|
|
373
409
|
var ProtocolOptions = /* @__PURE__ */ ((ProtocolOptions2) => {
|
|
374
410
|
ProtocolOptions2["HTTPS"] = "https";
|
|
375
411
|
ProtocolOptions2["HTTP"] = "http";
|
|
@@ -398,6 +434,7 @@ var ElectronBuildToolChoice = /* @__PURE__ */ ((ElectronBuildToolChoice2) => {
|
|
|
398
434
|
var DesktopFrameworkChoice = /* @__PURE__ */ ((DesktopFrameworkChoice2) => {
|
|
399
435
|
DesktopFrameworkChoice2["Electron"] = "Electron (https://www.electronjs.org/)";
|
|
400
436
|
DesktopFrameworkChoice2["Tauri"] = "Tauri (https://tauri.app/)";
|
|
437
|
+
DesktopFrameworkChoice2["Dioxus"] = "Dioxus (https://dioxuslabs.com/)";
|
|
401
438
|
DesktopFrameworkChoice2["MacOS"] = "Native macOS app";
|
|
402
439
|
return DesktopFrameworkChoice2;
|
|
403
440
|
})(DesktopFrameworkChoice || {});
|
|
@@ -407,6 +444,11 @@ var TauriDriverProviderChoice = /* @__PURE__ */ ((TauriDriverProviderChoice2) =>
|
|
|
407
444
|
TauriDriverProviderChoice2["Embedded"] = "Embedded driver via tauri-plugin-wdio-webdriver crate";
|
|
408
445
|
return TauriDriverProviderChoice2;
|
|
409
446
|
})(TauriDriverProviderChoice || {});
|
|
447
|
+
var DioxusDriverProviderChoice = /* @__PURE__ */ ((DioxusDriverProviderChoice2) => {
|
|
448
|
+
DioxusDriverProviderChoice2["Embedded"] = "Embedded in-process driver (recommended \u2014 no external driver, all platforms)";
|
|
449
|
+
DioxusDriverProviderChoice2["External"] = "External driver via wdio-dioxus-driver (Windows only)";
|
|
450
|
+
return DioxusDriverProviderChoice2;
|
|
451
|
+
})(DioxusDriverProviderChoice || {});
|
|
410
452
|
var SUPPORTED_BROWSER_RUNNER_PRESETS = [
|
|
411
453
|
{ name: "Lit (https://lit.dev/)", value: "$--$" },
|
|
412
454
|
{ name: "Vue.js (https://vuejs.org/)", value: "@vitejs/plugin-vue$--$vue" },
|
|
@@ -431,6 +473,8 @@ function getResolvedPurpose(answers) {
|
|
|
431
473
|
switch (answers.desktopFramework) {
|
|
432
474
|
case "Tauri (https://tauri.app/)" /* Tauri */:
|
|
433
475
|
return "tauri";
|
|
476
|
+
case "Dioxus (https://dioxuslabs.com/)" /* Dioxus */:
|
|
477
|
+
return "dioxus";
|
|
434
478
|
case "Native macOS app" /* MacOS */:
|
|
435
479
|
return "macos";
|
|
436
480
|
case "Electron (https://www.electronjs.org/)" /* Electron */:
|
|
@@ -552,6 +596,23 @@ var QUESTIONNAIRE = [{
|
|
|
552
596
|
/* istanbul ignore next */
|
|
553
597
|
(answers) => getResolvedPurpose(answers) === "tauri"
|
|
554
598
|
)
|
|
599
|
+
}, {
|
|
600
|
+
type: "list",
|
|
601
|
+
name: "dioxusDriverProvider",
|
|
602
|
+
message: "Which WebDriver provider would you like to use for Dioxus?",
|
|
603
|
+
choices: Object.values(DioxusDriverProviderChoice),
|
|
604
|
+
when: (
|
|
605
|
+
/* istanbul ignore next */
|
|
606
|
+
(answers) => getResolvedPurpose(answers) === "dioxus"
|
|
607
|
+
)
|
|
608
|
+
}, {
|
|
609
|
+
type: "input",
|
|
610
|
+
name: "dioxusAppBinaryPath",
|
|
611
|
+
message: "Path to your built Dioxus debug binary (e.g. ./target/debug/my-app)?",
|
|
612
|
+
when: (
|
|
613
|
+
/* istanbul ignore next */
|
|
614
|
+
(answers) => getResolvedPurpose(answers) === "dioxus"
|
|
615
|
+
)
|
|
555
616
|
}, {
|
|
556
617
|
type: "list",
|
|
557
618
|
name: "backend",
|
|
@@ -752,7 +813,7 @@ var QUESTIONNAIRE = [{
|
|
|
752
813
|
if (isBrowserRunner(answers)) {
|
|
753
814
|
return SUPPORTED_PACKAGES.framework.slice(0, 1);
|
|
754
815
|
}
|
|
755
|
-
if (["electron", "tauri"].includes(getResolvedPurpose(answers))) {
|
|
816
|
+
if (["electron", "tauri", "dioxus"].includes(getResolvedPurpose(answers))) {
|
|
756
817
|
return SUPPORTED_PACKAGES.framework.filter(
|
|
757
818
|
({ value }) => !value.startsWith("@serenity-js")
|
|
758
819
|
);
|
|
@@ -785,7 +846,7 @@ var QUESTIONNAIRE = [{
|
|
|
785
846
|
when: (
|
|
786
847
|
/* istanbul ignore next */
|
|
787
848
|
(answers) => {
|
|
788
|
-
if (["vscode", "electron", "tauri", "macos"].includes(getResolvedPurpose(answers)) && answers.framework.includes("cucumber")) {
|
|
849
|
+
if (["vscode", "electron", "tauri", "dioxus", "macos"].includes(getResolvedPurpose(answers)) && answers.framework.includes("cucumber")) {
|
|
789
850
|
return false;
|
|
790
851
|
}
|
|
791
852
|
return true;
|
|
@@ -838,7 +899,7 @@ var QUESTIONNAIRE = [{
|
|
|
838
899
|
* and also not needed when running VS Code tests since the service comes with
|
|
839
900
|
* its own page object implementation, nor when running Electron or MacOS tests
|
|
840
901
|
*/
|
|
841
|
-
!["vscode", "electron", "tauri", "macos"].includes(getResolvedPurpose(answers)) && /**
|
|
902
|
+
!["vscode", "electron", "tauri", "dioxus", "macos"].includes(getResolvedPurpose(answers)) && /**
|
|
842
903
|
* Serenity/JS generates Lean Page Objects by default, so there's no need to ask about it
|
|
843
904
|
* See https://serenity-js.org/handbook/web-testing/page-objects-pattern/
|
|
844
905
|
*/
|
|
@@ -921,6 +982,8 @@ var QUESTIONNAIRE = [{
|
|
|
921
982
|
tauriEntries.push(SUPPORTED_PACKAGES.service.find(({ name }) => name === "tauri-plugin"));
|
|
922
983
|
}
|
|
923
984
|
return tauriEntries;
|
|
985
|
+
} else if (getResolvedPurpose(answers) === "dioxus") {
|
|
986
|
+
return [SUPPORTED_PACKAGES.service.find(({ name }) => name === "dioxus")];
|
|
924
987
|
} else if (getResolvedPurpose(answers) === "macos") {
|
|
925
988
|
return [SUPPORTED_PACKAGES.service.find(({ name }) => name === "appium")];
|
|
926
989
|
} else if (getResolvedPurpose(answers) === "roku") {
|
|
@@ -947,6 +1010,8 @@ var QUESTIONNAIRE = [{
|
|
|
947
1010
|
if (answers.tauriUseFrontendPlugin) {
|
|
948
1011
|
defaultServices.push("tauri-plugin");
|
|
949
1012
|
}
|
|
1013
|
+
} else if (getResolvedPurpose(answers) === "dioxus") {
|
|
1014
|
+
defaultServices.push("dioxus");
|
|
950
1015
|
} else if (getResolvedPurpose(answers) === "roku") {
|
|
951
1016
|
defaultServices.push("roku");
|
|
952
1017
|
}
|
|
@@ -1213,9 +1278,6 @@ async function setupTypeScript(parsedAnswers) {
|
|
|
1213
1278
|
if (!parsedAnswers.isUsingTypeScript) {
|
|
1214
1279
|
return;
|
|
1215
1280
|
}
|
|
1216
|
-
if (parsedAnswers.hasRootTSConfig) {
|
|
1217
|
-
return;
|
|
1218
|
-
}
|
|
1219
1281
|
console.log("Setting up TypeScript...");
|
|
1220
1282
|
const frameworkPackage = convertPackageHashToObject(parsedAnswers.rawAnswers.framework);
|
|
1221
1283
|
const servicePackages = parsedAnswers.rawAnswers.services.map((service) => convertPackageHashToObject(service));
|
|
@@ -1282,11 +1344,37 @@ async function setupTypeScript(parsedAnswers) {
|
|
|
1282
1344
|
jsxFragmentFactory: "Fragment"
|
|
1283
1345
|
} : {}
|
|
1284
1346
|
)
|
|
1285
|
-
}
|
|
1286
|
-
|
|
1347
|
+
}
|
|
1348
|
+
};
|
|
1349
|
+
const tsConfigDir = path2.dirname(parsedAnswers.tsConfigFilePath);
|
|
1350
|
+
const toPosix = (value) => value.replace(/\\/g, "/");
|
|
1351
|
+
const getRelativePath = (target) => {
|
|
1352
|
+
const relativePath = toPosix(
|
|
1353
|
+
path2.relative(tsConfigDir, path2.resolve(parsedAnswers.projectRootDir, target))
|
|
1354
|
+
);
|
|
1355
|
+
return relativePath || ".";
|
|
1356
|
+
};
|
|
1357
|
+
const toExtendsPath = (target) => {
|
|
1358
|
+
const relativePath = getRelativePath(target);
|
|
1359
|
+
if (relativePath === "." || relativePath.startsWith("./") || relativePath.startsWith("../") || path2.isAbsolute(relativePath)) {
|
|
1360
|
+
return relativePath;
|
|
1361
|
+
}
|
|
1362
|
+
return `./${relativePath}`;
|
|
1287
1363
|
};
|
|
1364
|
+
if (parsedAnswers.hasRootTSConfig) {
|
|
1365
|
+
config.extends = toExtendsPath("tsconfig.json");
|
|
1366
|
+
}
|
|
1367
|
+
const defaultSpecInclude = (parsedAnswers.destSpecRootPath && path2.relative(parsedAnswers.projectRootDir, parsedAnswers.destSpecRootPath) || parsedAnswers.specs && path2.dirname(
|
|
1368
|
+
parsedAnswers.specs.split(/[\\/]/).filter((segment) => !segment.includes("*")).join(path2.sep)
|
|
1369
|
+
) || "test").replace(/\\/g, "/");
|
|
1370
|
+
const defaultWdioConfigInclude = (parsedAnswers.wdioConfigPath && path2.relative(parsedAnswers.projectRootDir, parsedAnswers.wdioConfigPath) || "wdio.conf.ts").replace(/\\/g, "/");
|
|
1371
|
+
const baseIncludes = preset === "svelte" ? ["src/**/*.d.ts", "src/**/*.ts", "src/**/*.js", "src/**/*.svelte"] : preset === "vue" ? ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"] : [
|
|
1372
|
+
defaultSpecInclude && defaultSpecInclude !== "." ? defaultSpecInclude : "test",
|
|
1373
|
+
defaultWdioConfigInclude && defaultWdioConfigInclude !== "." ? defaultWdioConfigInclude : "wdio.conf.ts"
|
|
1374
|
+
];
|
|
1375
|
+
Object.assign(config, { include: baseIncludes.map(getRelativePath) });
|
|
1288
1376
|
if (parsedAnswers.framework === "cucumber") {
|
|
1289
|
-
config.include.push("features");
|
|
1377
|
+
config.include.push(getRelativePath("features"));
|
|
1290
1378
|
}
|
|
1291
1379
|
await fs2.mkdir(path2.dirname(parsedAnswers.tsConfigFilePath), { recursive: true });
|
|
1292
1380
|
await fs2.writeFile(
|
|
@@ -1642,6 +1730,11 @@ async function runConfigCommand(parsedAnswers, npmTag) {
|
|
|
1642
1730
|
parsedAnswers.rawAnswers.tauriUseFrontendPlugin
|
|
1643
1731
|
));
|
|
1644
1732
|
}
|
|
1733
|
+
if (parsedAnswers.purpose === "dioxus") {
|
|
1734
|
+
extraInfoParts.push(buildDioxusBanner(
|
|
1735
|
+
parsedAnswers.rawAnswers.dioxusDriverProvider
|
|
1736
|
+
));
|
|
1737
|
+
}
|
|
1645
1738
|
console.log(
|
|
1646
1739
|
configHelperSuccessMessage({
|
|
1647
1740
|
projectRootDir: parsedAnswers.projectRootDir,
|
|
@@ -1670,6 +1763,27 @@ async function missingConfigurationPrompt(command2, configPath, runConfigCmd = r
|
|
|
1670
1763
|
await runConfigCmd(parsedAnswers, "latest");
|
|
1671
1764
|
return configPath;
|
|
1672
1765
|
}
|
|
1766
|
+
function resolveTsConfigFilePath({
|
|
1767
|
+
projectRootDir,
|
|
1768
|
+
hasRootTSConfig,
|
|
1769
|
+
specs,
|
|
1770
|
+
runnerShort
|
|
1771
|
+
}) {
|
|
1772
|
+
const rootTsConfigPath = path3.resolve(projectRootDir, "tsconfig.json");
|
|
1773
|
+
const dedicatedTsConfigPath = path3.resolve(
|
|
1774
|
+
projectRootDir,
|
|
1775
|
+
`tsconfig.${runnerShort === "local" ? "e2e" : "wdio"}.json`
|
|
1776
|
+
);
|
|
1777
|
+
if (!hasRootTSConfig) {
|
|
1778
|
+
return rootTsConfigPath;
|
|
1779
|
+
}
|
|
1780
|
+
if (!specs) {
|
|
1781
|
+
return dedicatedTsConfigPath;
|
|
1782
|
+
}
|
|
1783
|
+
const specPathWithoutGlobs = specs.split(path3.sep).filter((segment) => !segment.includes("*")).join(path3.sep);
|
|
1784
|
+
const candidate = path3.resolve(projectRootDir, path3.dirname(specPathWithoutGlobs), "tsconfig.json");
|
|
1785
|
+
return path3.resolve(candidate) === rootTsConfigPath ? dedicatedTsConfigPath : candidate;
|
|
1786
|
+
}
|
|
1673
1787
|
var parseAnswers = async function(yes) {
|
|
1674
1788
|
console.log(CONFIG_HELPER_INTRO);
|
|
1675
1789
|
const answers = await getAnswers(yes);
|
|
@@ -1692,10 +1806,12 @@ var parseAnswers = async function(yes) {
|
|
|
1692
1806
|
...serenityPackages
|
|
1693
1807
|
].filter(Boolean);
|
|
1694
1808
|
const hasRootTSConfig = await fs3.access(path3.resolve(projectRootDir, "tsconfig.json")).then(() => true, () => false);
|
|
1695
|
-
const tsConfigFilePath =
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1809
|
+
const tsConfigFilePath = resolveTsConfigFilePath({
|
|
1810
|
+
projectRootDir,
|
|
1811
|
+
hasRootTSConfig,
|
|
1812
|
+
specs: answers.specs,
|
|
1813
|
+
runnerShort: runnerPackage.short
|
|
1814
|
+
});
|
|
1699
1815
|
const parsedPaths = getPathForFileGeneration(answers, projectRootDir);
|
|
1700
1816
|
const isUsingTypeScript = answers.isUsingTypeScript;
|
|
1701
1817
|
const wdioConfigFilename = `wdio.conf.${isUsingTypeScript ? "ts" : "js"}`;
|
|
@@ -49,6 +49,13 @@ capabilities: [{<%
|
|
|
49
49
|
// custom application args
|
|
50
50
|
appArgs: []
|
|
51
51
|
}<%
|
|
52
|
+
} else if (answers.purpose === 'dioxus') { %>
|
|
53
|
+
browserName: 'dioxus',
|
|
54
|
+
// path to your built Dioxus debug binary
|
|
55
|
+
// see https://webdriver.io/docs/desktop-testing/dioxus/configuration
|
|
56
|
+
'dioxus:options': {
|
|
57
|
+
application: <%- JSON.stringify(answers.dioxusAppBinaryPath || './target/debug/my-app') %>
|
|
58
|
+
}<%
|
|
52
59
|
} else {
|
|
53
60
|
%>
|
|
54
61
|
// capabilities for local browser web tests
|
|
@@ -20,6 +20,19 @@ services: [<%- answers.services.map((service) => {
|
|
|
20
20
|
]`
|
|
21
21
|
} else if (service === 'tauri-plugin') {
|
|
22
22
|
return /*js*/`'tauri-plugin'`
|
|
23
|
+
} else if (service === 'dioxus') {
|
|
24
|
+
const providerMap = {
|
|
25
|
+
'Embedded in-process driver (recommended — no external driver, all platforms)': 'embedded',
|
|
26
|
+
'External driver via wdio-dioxus-driver (Windows only)': 'external',
|
|
27
|
+
}
|
|
28
|
+
const provider = providerMap[answers.rawAnswers.dioxusDriverProvider] ?? 'embedded'
|
|
29
|
+
return /*js*/`[
|
|
30
|
+
'dioxus',
|
|
31
|
+
{
|
|
32
|
+
driverProvider: '${provider}',
|
|
33
|
+
// see https://webdriver.io/docs/desktop-testing/dioxus/configuration for all options
|
|
34
|
+
}
|
|
35
|
+
]`
|
|
23
36
|
} else if (service === 'sauce' && answers.useSauceConnect) {
|
|
24
37
|
return /*js*/`[
|
|
25
38
|
'sauce',
|
|
@@ -7,6 +7,10 @@ if (answers.isUsingTypeScript && answers.purpose === 'tauri') {
|
|
|
7
7
|
%>/// <reference types="@wdio/tauri-service" />
|
|
8
8
|
<% }
|
|
9
9
|
|
|
10
|
+
if (answers.isUsingTypeScript && answers.purpose === 'dioxus') {
|
|
11
|
+
%>/// <reference types="@wdio/dioxus-service" />
|
|
12
|
+
<% }
|
|
13
|
+
|
|
10
14
|
if (answers.isUsingTypeScript && answers.serenityAdapter) {
|
|
11
15
|
%>import type { WebdriverIOConfig } from '@serenity-js/webdriverio'
|
|
12
16
|
<% }
|
package/build/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BackendChoice, RegionOptions, ElectronBuildToolChoice, DesktopFrameworkChoice, TauriDriverProviderChoice } from './constants.js';
|
|
1
|
+
import type { BackendChoice, RegionOptions, ElectronBuildToolChoice, DesktopFrameworkChoice, TauriDriverProviderChoice, DioxusDriverProviderChoice } from './constants.js';
|
|
2
2
|
import type { PackageJson as typeFestPackageJson } from 'type-fest';
|
|
3
3
|
import type { Package as normalizePackage } from 'normalize-package-data';
|
|
4
4
|
export type NormalizedPackageJson = PackageJson & normalizePackage;
|
|
@@ -20,6 +20,8 @@ export interface Questionnair {
|
|
|
20
20
|
tauriDriverProvider?: TauriDriverProviderChoice;
|
|
21
21
|
tauriUseFrontendPlugin?: boolean;
|
|
22
22
|
tauriAppBinaryPath?: string;
|
|
23
|
+
dioxusDriverProvider?: DioxusDriverProviderChoice;
|
|
24
|
+
dioxusAppBinaryPath?: string;
|
|
23
25
|
backend?: BackendChoice;
|
|
24
26
|
hostname?: string;
|
|
25
27
|
port?: 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,aAAa,EAAE,aAAa,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/build/utils/index.js
CHANGED
|
@@ -88,7 +88,7 @@ async function detectCompiler(answers) {
|
|
|
88
88
|
// package.json
|
|
89
89
|
var package_default = {
|
|
90
90
|
name: "create-wdio",
|
|
91
|
-
version: "9.31.
|
|
91
|
+
version: "9.31.6",
|
|
92
92
|
description: "Install and setup a WebdriverIO project with all its dependencies in a single run",
|
|
93
93
|
author: "WebdriverIO Team <mail@webdriver.io>",
|
|
94
94
|
homepage: "https://github.com/webdriverio/webdriverio/tree/main/packages/create-wdio",
|
|
@@ -195,7 +195,7 @@ var SUPPORTED_PACKAGES = {
|
|
|
195
195
|
runner: [
|
|
196
196
|
{ name: "E2E Testing - of Web or Mobile Applications", value: "@wdio/local-runner$--$local$--$e2e" },
|
|
197
197
|
{ name: "Component or Unit Testing - in the browser\n > https://webdriver.io/docs/component-testing", value: "@wdio/browser-runner$--$browser$--$component" },
|
|
198
|
-
{ name: "Desktop Testing - of Electron, Tauri, or macOS Applications\n > https://webdriver.io/docs/desktop-testing", value: "@wdio/local-runner$--$local$--$desktop" },
|
|
198
|
+
{ name: "Desktop Testing - of Electron, Tauri, Dioxus, or macOS Applications\n > https://webdriver.io/docs/desktop-testing", value: "@wdio/local-runner$--$local$--$desktop" },
|
|
199
199
|
{ name: "VS Code Extension Testing\n > https://webdriver.io/docs/vscode-extension-testing", value: "@wdio/local-runner$--$local$--$vscode" },
|
|
200
200
|
{ name: "Roku Testing - of OTT apps running on RokuOS\n > https://webdriver.io/docs/wdio-roku-service", value: "@wdio/local-runner$--$local$--$roku" }
|
|
201
201
|
],
|
|
@@ -249,6 +249,7 @@ var SUPPORTED_PACKAGES = {
|
|
|
249
249
|
{ name: "electron", value: "@wdio/electron-service$--$electron" },
|
|
250
250
|
{ name: "tauri", value: "@wdio/tauri-service$--$tauri" },
|
|
251
251
|
{ name: "tauri-plugin", value: "@wdio/tauri-plugin$--$tauri-plugin" },
|
|
252
|
+
{ name: "dioxus", value: "@wdio/dioxus-service$--$dioxus" },
|
|
252
253
|
{ name: "appium", value: "@wdio/appium-service$--$appium" },
|
|
253
254
|
// external
|
|
254
255
|
{ name: "camera", value: "wdio-camera-service$--$camera" },
|
|
@@ -280,7 +281,8 @@ var SUPPORTED_PACKAGES = {
|
|
|
280
281
|
{ name: "robonut", value: "wdio-robonut-service$--$robonut" },
|
|
281
282
|
{ name: "qunit", value: "wdio-qunit-service$--$qunit" },
|
|
282
283
|
{ name: "roku", value: "wdio-roku-service$--$roku" },
|
|
283
|
-
{ name: "obsidian", value: "wdio-obsidian-service$--$obsidian" }
|
|
284
|
+
{ name: "obsidian", value: "wdio-obsidian-service$--$obsidian" },
|
|
285
|
+
{ name: "null-driver", value: "wdio-null-driver-service$--$null-driver" }
|
|
284
286
|
]
|
|
285
287
|
};
|
|
286
288
|
var isNuxtProject = [
|
|
@@ -327,6 +329,7 @@ var ElectronBuildToolChoice = /* @__PURE__ */ ((ElectronBuildToolChoice2) => {
|
|
|
327
329
|
var DesktopFrameworkChoice = /* @__PURE__ */ ((DesktopFrameworkChoice2) => {
|
|
328
330
|
DesktopFrameworkChoice2["Electron"] = "Electron (https://www.electronjs.org/)";
|
|
329
331
|
DesktopFrameworkChoice2["Tauri"] = "Tauri (https://tauri.app/)";
|
|
332
|
+
DesktopFrameworkChoice2["Dioxus"] = "Dioxus (https://dioxuslabs.com/)";
|
|
330
333
|
DesktopFrameworkChoice2["MacOS"] = "Native macOS app";
|
|
331
334
|
return DesktopFrameworkChoice2;
|
|
332
335
|
})(DesktopFrameworkChoice || {});
|
|
@@ -336,6 +339,11 @@ var TauriDriverProviderChoice = /* @__PURE__ */ ((TauriDriverProviderChoice2) =>
|
|
|
336
339
|
TauriDriverProviderChoice2["Embedded"] = "Embedded driver via tauri-plugin-wdio-webdriver crate";
|
|
337
340
|
return TauriDriverProviderChoice2;
|
|
338
341
|
})(TauriDriverProviderChoice || {});
|
|
342
|
+
var DioxusDriverProviderChoice = /* @__PURE__ */ ((DioxusDriverProviderChoice2) => {
|
|
343
|
+
DioxusDriverProviderChoice2["Embedded"] = "Embedded in-process driver (recommended \u2014 no external driver, all platforms)";
|
|
344
|
+
DioxusDriverProviderChoice2["External"] = "External driver via wdio-dioxus-driver (Windows only)";
|
|
345
|
+
return DioxusDriverProviderChoice2;
|
|
346
|
+
})(DioxusDriverProviderChoice || {});
|
|
339
347
|
var SUPPORTED_BROWSER_RUNNER_PRESETS = [
|
|
340
348
|
{ name: "Lit (https://lit.dev/)", value: "$--$" },
|
|
341
349
|
{ name: "Vue.js (https://vuejs.org/)", value: "@vitejs/plugin-vue$--$vue" },
|
|
@@ -360,6 +368,8 @@ function getResolvedPurpose(answers) {
|
|
|
360
368
|
switch (answers.desktopFramework) {
|
|
361
369
|
case "Tauri (https://tauri.app/)" /* Tauri */:
|
|
362
370
|
return "tauri";
|
|
371
|
+
case "Dioxus (https://dioxuslabs.com/)" /* Dioxus */:
|
|
372
|
+
return "dioxus";
|
|
363
373
|
case "Native macOS app" /* MacOS */:
|
|
364
374
|
return "macos";
|
|
365
375
|
case "Electron (https://www.electronjs.org/)" /* Electron */:
|
|
@@ -481,6 +491,23 @@ var QUESTIONNAIRE = [{
|
|
|
481
491
|
/* istanbul ignore next */
|
|
482
492
|
(answers) => getResolvedPurpose(answers) === "tauri"
|
|
483
493
|
)
|
|
494
|
+
}, {
|
|
495
|
+
type: "list",
|
|
496
|
+
name: "dioxusDriverProvider",
|
|
497
|
+
message: "Which WebDriver provider would you like to use for Dioxus?",
|
|
498
|
+
choices: Object.values(DioxusDriverProviderChoice),
|
|
499
|
+
when: (
|
|
500
|
+
/* istanbul ignore next */
|
|
501
|
+
(answers) => getResolvedPurpose(answers) === "dioxus"
|
|
502
|
+
)
|
|
503
|
+
}, {
|
|
504
|
+
type: "input",
|
|
505
|
+
name: "dioxusAppBinaryPath",
|
|
506
|
+
message: "Path to your built Dioxus debug binary (e.g. ./target/debug/my-app)?",
|
|
507
|
+
when: (
|
|
508
|
+
/* istanbul ignore next */
|
|
509
|
+
(answers) => getResolvedPurpose(answers) === "dioxus"
|
|
510
|
+
)
|
|
484
511
|
}, {
|
|
485
512
|
type: "list",
|
|
486
513
|
name: "backend",
|
|
@@ -681,7 +708,7 @@ var QUESTIONNAIRE = [{
|
|
|
681
708
|
if (isBrowserRunner(answers)) {
|
|
682
709
|
return SUPPORTED_PACKAGES.framework.slice(0, 1);
|
|
683
710
|
}
|
|
684
|
-
if (["electron", "tauri"].includes(getResolvedPurpose(answers))) {
|
|
711
|
+
if (["electron", "tauri", "dioxus"].includes(getResolvedPurpose(answers))) {
|
|
685
712
|
return SUPPORTED_PACKAGES.framework.filter(
|
|
686
713
|
({ value }) => !value.startsWith("@serenity-js")
|
|
687
714
|
);
|
|
@@ -714,7 +741,7 @@ var QUESTIONNAIRE = [{
|
|
|
714
741
|
when: (
|
|
715
742
|
/* istanbul ignore next */
|
|
716
743
|
(answers) => {
|
|
717
|
-
if (["vscode", "electron", "tauri", "macos"].includes(getResolvedPurpose(answers)) && answers.framework.includes("cucumber")) {
|
|
744
|
+
if (["vscode", "electron", "tauri", "dioxus", "macos"].includes(getResolvedPurpose(answers)) && answers.framework.includes("cucumber")) {
|
|
718
745
|
return false;
|
|
719
746
|
}
|
|
720
747
|
return true;
|
|
@@ -767,7 +794,7 @@ var QUESTIONNAIRE = [{
|
|
|
767
794
|
* and also not needed when running VS Code tests since the service comes with
|
|
768
795
|
* its own page object implementation, nor when running Electron or MacOS tests
|
|
769
796
|
*/
|
|
770
|
-
!["vscode", "electron", "tauri", "macos"].includes(getResolvedPurpose(answers)) && /**
|
|
797
|
+
!["vscode", "electron", "tauri", "dioxus", "macos"].includes(getResolvedPurpose(answers)) && /**
|
|
771
798
|
* Serenity/JS generates Lean Page Objects by default, so there's no need to ask about it
|
|
772
799
|
* See https://serenity-js.org/handbook/web-testing/page-objects-pattern/
|
|
773
800
|
*/
|
|
@@ -850,6 +877,8 @@ var QUESTIONNAIRE = [{
|
|
|
850
877
|
tauriEntries.push(SUPPORTED_PACKAGES.service.find(({ name }) => name === "tauri-plugin"));
|
|
851
878
|
}
|
|
852
879
|
return tauriEntries;
|
|
880
|
+
} else if (getResolvedPurpose(answers) === "dioxus") {
|
|
881
|
+
return [SUPPORTED_PACKAGES.service.find(({ name }) => name === "dioxus")];
|
|
853
882
|
} else if (getResolvedPurpose(answers) === "macos") {
|
|
854
883
|
return [SUPPORTED_PACKAGES.service.find(({ name }) => name === "appium")];
|
|
855
884
|
} else if (getResolvedPurpose(answers) === "roku") {
|
|
@@ -876,6 +905,8 @@ var QUESTIONNAIRE = [{
|
|
|
876
905
|
if (answers.tauriUseFrontendPlugin) {
|
|
877
906
|
defaultServices.push("tauri-plugin");
|
|
878
907
|
}
|
|
908
|
+
} else if (getResolvedPurpose(answers) === "dioxus") {
|
|
909
|
+
defaultServices.push("dioxus");
|
|
879
910
|
} else if (getResolvedPurpose(answers) === "roku") {
|
|
880
911
|
defaultServices.push("roku");
|
|
881
912
|
}
|
package/build/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAKtD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAkB7F,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,iBAchF;AAED,wBAAsB,iBAAiB,oBAStC;AAYD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,SAAS,GAAG,gBAAgB,CAGvF;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAmFpE;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,GAAG,SAAgB,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAkB5F;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM;;;;;;EA0BrF;AAaD;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,aAAa,CAAC,EAAE,YAAY,mBAahE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,aAAa,EAAE,aAAa,8BAgCnE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,aAAa,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAKtD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAkB7F,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,iBAchF;AAED,wBAAsB,iBAAiB,oBAStC;AAYD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,SAAS,GAAG,gBAAgB,CAGvF;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAmFpE;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,GAAG,SAAgB,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAkB5F;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM;;;;;;EA0BrF;AAaD;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,aAAa,CAAC,EAAE,YAAY,mBAahE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,aAAa,EAAE,aAAa,8BAgCnE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,aAAa,EAAE,aAAa,iBAwKjE;AAMD,wBAAsB,UAAU,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBA0G5E;AAMD,wBAAgB,cAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,UAAQ,QAmB3F;AAED,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,aAAa,iBAmBlE;AAED,eAAO,MAAM,UAAU,EAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAGvH,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,aAAa,oBA8BlE;AAGD,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,aAAa;;IAoBpE;AACD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE,CAwCnE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,6CASnC;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,mBAU3E;AAID;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,YAAY,oBASzD;AAGD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,iBAAiB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAelG;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,aAAa,iBAU7D;AA6DD,wBAAsB,8BAA8B,CAAC,OAAO,EAAE,aAAa,iBAiC1E;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,MAAM;;;GAMzD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,2BASxD;AAoBD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,sBAYvE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-wdio",
|
|
3
|
-
"version": "9.32.0
|
|
3
|
+
"version": "9.32.0",
|
|
4
4
|
"description": "Install and setup a WebdriverIO project with all its dependencies in a single run",
|
|
5
5
|
"author": "WebdriverIO Team <mail@webdriver.io>",
|
|
6
6
|
"homepage": "https://github.com/webdriverio/webdriverio/tree/main/packages/create-wdio",
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
"publishConfig": {
|
|
78
78
|
"access": "public"
|
|
79
79
|
},
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "5c2a318d9a5e8424a2f2de95df9374b89bda7936"
|
|
81
81
|
}
|