@wdio/utils 8.10.7 → 8.12.1

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.
@@ -18,6 +18,7 @@ export declare function capabilitiesEnvironmentDetector(capabilities: Capabiliti
18
18
  isIOS: boolean;
19
19
  isAndroid: boolean;
20
20
  isSauce: boolean;
21
+ isBidi: boolean;
21
22
  };
22
23
  /**
23
24
  * returns information about the environment when the session is created
@@ -37,6 +38,7 @@ export declare function sessionEnvironmentDetector({ capabilities, requestedCapa
37
38
  isAndroid: boolean;
38
39
  isSauce: boolean;
39
40
  isSeleniumStandalone: boolean;
41
+ isBidi: boolean;
40
42
  };
41
43
  /**
42
44
  * returns information about the environment when `devtools` protocol is used
@@ -53,6 +55,7 @@ export declare function devtoolsEnvironmentDetector({ browserName }: Capabilitie
53
55
  isChrome: boolean;
54
56
  isSauce: boolean;
55
57
  isSeleniumStandalone: boolean;
58
+ isBidi: boolean;
56
59
  };
57
60
  /**
58
61
  * returns information about the environment before the session is created
@@ -67,5 +70,6 @@ export declare function webdriverEnvironmentDetector(capabilities: Capabilities.
67
70
  isIOS: boolean;
68
71
  isAndroid: boolean;
69
72
  isSauce: boolean;
73
+ isBidi: boolean;
70
74
  };
71
75
  //# sourceMappingURL=envDetector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"envDetector.d.ts","sourceRoot":"","sources":["../src/envDetector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAQ/C;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,mBAAmB,WAwCpE;AA4ID;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,YAAY,CAAC,YAAY,EAAE,kBAAkB,EAAE,MAAM;;;;;;;EAIlH;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,YAAY,EAAE,qBAAqB,EAAE,EAC9E;IAAE,YAAY,EAAE,YAAY,CAAC,gBAAgB,CAAC;IAAC,qBAAqB,EAAE,YAAY,CAAC,gBAAgB,CAAA;CAAE;;;;;;;;;EAcxG;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,WAAW,EAAE,EAAE,YAAY,CAAC,YAAY;;;;;;;;;;EAYrF;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,YAAY,CAAC,YAAY;;;;;;;EASnF"}
1
+ {"version":3,"file":"envDetector.d.ts","sourceRoot":"","sources":["../src/envDetector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAQ/C;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,mBAAmB,WAwCpE;AA4JD;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,YAAY,CAAC,YAAY,EAAE,kBAAkB,EAAE,MAAM;;;;;;;;EAIlH;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,YAAY,EAAE,qBAAqB,EAAE,EAC9E;IAAE,YAAY,EAAE,YAAY,CAAC,gBAAgB,CAAC;IAAC,qBAAqB,EAAE,YAAY,CAAC,gBAAgB,CAAA;CAAE;;;;;;;;;;EAexG;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,WAAW,EAAE,EAAE,YAAY,CAAC,YAAY;;;;;;;;;;;EAarF;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,YAAY,CAAC,YAAY;;;;;;;;EAUnF"}
@@ -125,7 +125,6 @@ function isAndroid(capabilities) {
125
125
  }
126
126
  /**
127
127
  * detects if session is run on Sauce with extended debugging enabled
128
- * @param {string} hostname hostname of session request
129
128
  * @param {object} capabilities session capabilities
130
129
  * @return {Boolean} true if session is running on Sauce with extended debugging enabled
131
130
  */
@@ -140,6 +139,20 @@ function isSauce(capabilities) {
140
139
  (caps['sauce:options'] &&
141
140
  caps['sauce:options'].extendedDebugging));
142
141
  }
142
+ /**
143
+ * detects if session has support for WebDriver Bidi
144
+ * @param {object} capabilities session capabilities
145
+ * @return {Boolean} true if session has WebDriver Bidi support
146
+ */
147
+ function isBidi(capabilities) {
148
+ if (!capabilities) {
149
+ return false;
150
+ }
151
+ const caps = capabilities.alwaysMatch
152
+ ? capabilities.alwaysMatch
153
+ : capabilities;
154
+ return Boolean(caps.webSocketUrl);
155
+ }
143
156
  /**
144
157
  * detects if session is run using Selenium Standalone server
145
158
  * @param {object} capabilities session capabilities
@@ -188,7 +201,8 @@ export function sessionEnvironmentDetector({ capabilities, requestedCapabilities
188
201
  isIOS: isIOS(cap),
189
202
  isAndroid: isAndroid(cap),
190
203
  isSauce: isSauce(requestedCapabilities),
191
- isSeleniumStandalone: isSeleniumStandalone(cap)
204
+ isSeleniumStandalone: isSeleniumStandalone(cap),
205
+ isBidi: isBidi(capabilities)
192
206
  };
193
207
  }
194
208
  /**
@@ -207,6 +221,7 @@ export function devtoolsEnvironmentDetector({ browserName }) {
207
221
  isChrome: browserName === 'chrome',
208
222
  isSauce: false,
209
223
  isSeleniumStandalone: false,
224
+ isBidi: false
210
225
  };
211
226
  }
212
227
  /**
@@ -222,6 +237,7 @@ export function webdriverEnvironmentDetector(capabilities) {
222
237
  isMobile: isMobile(capabilities),
223
238
  isIOS: isIOS(capabilities),
224
239
  isAndroid: isAndroid(capabilities),
225
- isSauce: isSauce(capabilities)
240
+ isSauce: isSauce(capabilities),
241
+ isBidi: isBidi(capabilities)
226
242
  };
227
243
  }
@@ -1 +1 @@
1
- {"version":3,"file":"testInterfaceWrapper.d.ts","sourceRoot":"","sources":["../../src/test-framework/testInterfaceWrapper.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EACR,UAAU,EAIV,aAAa,EAChB,MAAM,YAAY,CAAA;AAInB;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO,SACV,OAAO,UACL,QAAQ,UACR,QAAQ,YACN,QAAQ,GAAG,QAAQ,EAAE,gBACjB,WAAW,OAAO,CAAC,WACxB,QAAQ,GAAG,QAAQ,EAAE,eACjB,WAAW,OAAO,CAAC,OAC3B,MAAM,cACC,MAAM,WACT,MAAM,QAgClB,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO,SACV,OAAO,aACF,MAAM,UACT,QAAQ,UACR,QAAQ,YACN,QAAQ,GAAG,QAAQ,EAAE,gBACjB,WAAW,OAAO,CAAC,WACxB,QAAQ,GAAG,QAAQ,EAAE,eACjB,WAAW,OAAO,CAAC,OAC3B,MAAM,cACC,MAAM,WACT,MAAM,QAgClB,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,SACnB,OAAO,UACL,QAAQ,UACR,OAAO,YACL,QAAQ,GAAG,QAAQ,EAAE,gBACjB,WAAW,OAAO,CAAC,WACxB,QAAQ,GAAG,QAAQ,EAAE,eACjB,WAAW,OAAO,CAAC,OAC3B,MAAM,wBAEwB,aAAa,QAkEnD,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,oBAAoB,SACvB,OAAO,UACL,OAAO,YACL,QAAQ,GAAG,QAAQ,EAAE,gBACjB,WAAW,OAAO,CAAC,WACxB,QAAQ,GAAG,QAAQ,EAAE,eACjB,WAAW,OAAO,CAAC,UACxB,MAAM,OACT,MAAM,oCAcd,CAAA"}
1
+ {"version":3,"file":"testInterfaceWrapper.d.ts","sourceRoot":"","sources":["../../src/test-framework/testInterfaceWrapper.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EACR,UAAU,EAIV,aAAa,EAChB,MAAM,YAAY,CAAA;AAInB;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO,SACV,OAAO,UACL,QAAQ,UACR,QAAQ,YACN,QAAQ,GAAG,QAAQ,EAAE,gBACjB,WAAW,OAAO,CAAC,WACxB,QAAQ,GAAG,QAAQ,EAAE,eACjB,WAAW,OAAO,CAAC,OAC3B,MAAM,cACC,MAAM,WACT,MAAM,QAqClB,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO,SACV,OAAO,aACF,MAAM,UACT,QAAQ,UACR,QAAQ,YACN,QAAQ,GAAG,QAAQ,EAAE,gBACjB,WAAW,OAAO,CAAC,WACxB,QAAQ,GAAG,QAAQ,EAAE,eACjB,WAAW,OAAO,CAAC,OAC3B,MAAM,cACC,MAAM,WACT,MAAM,QAqClB,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,SACnB,OAAO,UACL,QAAQ,UACR,OAAO,YACL,QAAQ,GAAG,QAAQ,EAAE,gBACjB,WAAW,OAAO,CAAC,WACxB,QAAQ,GAAG,QAAQ,EAAE,eACjB,WAAW,OAAO,CAAC,OAC3B,MAAM,wBAEwB,aAAa,QAkEnD,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,oBAAoB,SACvB,OAAO,UACL,OAAO,YACL,QAAQ,GAAG,QAAQ,EAAE,gBACjB,WAAW,OAAO,CAAC,WACxB,QAAQ,GAAG,QAAQ,EAAE,eACjB,WAAW,OAAO,CAAC,UACxB,MAAM,OACT,MAAM,oCAcd,CAAA"}
@@ -22,7 +22,7 @@ const MOCHA_COMMANDS = ['skip', 'only'];
22
22
  * @return {Function} wrapped framework hook function
23
23
  */
24
24
  export const runHook = function (hookFn, origFn, beforeFn, beforeFnArgs, afterFn, afterFnArgs, cid, repeatTest, timeout) {
25
- return origFn(function (...hookFnArgs) {
25
+ const wrappedHook = function (...hookFnArgs) {
26
26
  return testFnWrapper.call(this, 'Hook', {
27
27
  specFn: hookFn,
28
28
  specFnArgs: filterSpecArgs(hookFnArgs)
@@ -33,7 +33,12 @@ export const runHook = function (hookFn, origFn, beforeFn, beforeFnArgs, afterFn
33
33
  afterFn,
34
34
  afterFnArgs
35
35
  }, cid, repeatTest);
36
- }, timeout);
36
+ };
37
+ /**
38
+ * make sure Mocha grabs the correct hook function body
39
+ */
40
+ wrappedHook.toString = () => hookFn.toString();
41
+ return origFn(wrappedHook, timeout);
37
42
  };
38
43
  /**
39
44
  * runs a spec function (test function)
@@ -50,7 +55,7 @@ export const runHook = function (hookFn, origFn, beforeFn, beforeFnArgs, afterFn
50
55
  * @return {Function} wrapped test function
51
56
  */
52
57
  export const runSpec = function (specTitle, specFn, origFn, beforeFn, beforeFnArgs, afterFn, afterFnArgs, cid, repeatTest, timeout) {
53
- return origFn(specTitle, function (...specFnArgs) {
58
+ const wrappedFn = function (...specFnArgs) {
54
59
  return testFnWrapper.call(this, 'Test', {
55
60
  specFn,
56
61
  specFnArgs: filterSpecArgs(specFnArgs)
@@ -61,7 +66,12 @@ export const runSpec = function (specTitle, specFn, origFn, beforeFn, beforeFnAr
61
66
  afterFn,
62
67
  afterFnArgs
63
68
  }, cid, repeatTest);
64
- }, timeout);
69
+ };
70
+ /**
71
+ * make sure Mocha grabs the correct test function body
72
+ */
73
+ wrappedFn.toString = () => specFn.toString();
74
+ return origFn(specTitle, wrappedFn, timeout);
65
75
  };
66
76
  /**
67
77
  * wraps hooks and test function of a framework within a fiber context
package/build/utils.d.ts CHANGED
@@ -13,7 +13,7 @@ export declare function overwriteElementCommands(propertiesObject: {
13
13
  * get command call structure
14
14
  * (for logging purposes)
15
15
  */
16
- export declare function commandCallStructure(commandName: string, args: any[]): string;
16
+ export declare function commandCallStructure(commandName: string, args: any[], unfurl?: boolean): string;
17
17
  /**
18
18
  * transforms WebDriver result for log stream to avoid unnecessary long
19
19
  * result strings e.g. if it contains a screenshot
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAW,MAAM,aAAa,CAAA;AAMpD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,gBAAgB,EAAE;IAAE,sBAAsB,CAAC,EAAE;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,QAwCzH;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,UA+BrE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAE,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;EAapF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,WA8B/D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAE,GAAG,EAAE,GAAG,wGAExC;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,CA4DtF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAE,EAAE,EAAE,QAAQ,WAE5C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAE,IAAI,EAAE,GAAG,EAAE,SAE1C;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,WAenC;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,UAAW,MAAM,YAWtC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,mCAAoD,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAW,MAAM,aAAa,CAAA;AAMpD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,gBAAgB,EAAE;IAAE,sBAAsB,CAAC,EAAE;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,QAwCzH;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,UAAQ,UA+BrF;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAE,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;EAapF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,WA8B/D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAE,GAAG,EAAE,GAAG,wGAExC;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,CA4DtF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAE,EAAE,EAAE,QAAQ,WAE5C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAE,IAAI,EAAE,GAAG,EAAE,SAE1C;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,WAenC;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,UAAW,MAAM,YAWtC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,mCAAoD,CAAA"}
package/build/utils.js CHANGED
@@ -47,7 +47,7 @@ export function overwriteElementCommands(propertiesObject) {
47
47
  * get command call structure
48
48
  * (for logging purposes)
49
49
  */
50
- export function commandCallStructure(commandName, args) {
50
+ export function commandCallStructure(commandName, args, unfurl = false) {
51
51
  const callArgs = args.map((arg) => {
52
52
  if (typeof arg === 'string' && (arg.startsWith('!function(') || arg.startsWith('return (function'))) {
53
53
  arg = '<fn>';
@@ -72,7 +72,7 @@ export function commandCallStructure(commandName, args) {
72
72
  arg = 'null';
73
73
  }
74
74
  else if (typeof arg === 'object') {
75
- arg = '<object>';
75
+ arg = unfurl ? JSON.stringify(arg) : '<object>';
76
76
  }
77
77
  else if (typeof arg === 'undefined') {
78
78
  arg = typeof arg;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wdio/utils",
3
- "version": "8.10.7",
3
+ "version": "8.12.1",
4
4
  "description": "A WDIO helper utility to provide several utility functions used across the project.",
5
5
  "author": "Christian Bromann <mail@bromann.dev>",
6
6
  "homepage": "https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-utils",
@@ -30,7 +30,7 @@
30
30
  "url": "https://github.com/webdriverio/webdriverio/issues"
31
31
  },
32
32
  "dependencies": {
33
- "@wdio/logger": "8.10.6",
33
+ "@wdio/logger": "8.11.0",
34
34
  "@wdio/types": "8.10.4",
35
35
  "import-meta-resolve": "^3.0.0",
36
36
  "p-iteration": "^1.1.8"
@@ -38,5 +38,5 @@
38
38
  "publishConfig": {
39
39
  "access": "public"
40
40
  },
41
- "gitHead": "c7f9f09295f3ddfff03279f552f7b36a03575d1f"
41
+ "gitHead": "be1e7959a7599e2afe33e60856be9a7ca16eb3aa"
42
42
  }