@wdio/runner 8.0.4 → 8.0.5
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/browser.d.ts +3 -1
- package/build/browser.d.ts.map +1 -1
- package/build/browser.js +44 -32
- package/package.json +4 -4
package/build/browser.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { Capabilities } from '@wdio/types';
|
|
2
2
|
import type BaseReporter from './reporter';
|
|
3
3
|
import type { TestFramework } from './types';
|
|
4
|
-
type WDIOErrorEvent = Pick<ErrorEvent, 'filename' | 'message'
|
|
4
|
+
type WDIOErrorEvent = Partial<Pick<ErrorEvent, 'filename' | 'message'>> & {
|
|
5
|
+
hasViteError?: boolean;
|
|
6
|
+
};
|
|
5
7
|
declare global {
|
|
6
8
|
interface Window {
|
|
7
9
|
__wdioErrors__: WDIOErrorEvent[];
|
package/build/browser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAW,MAAM,aAAa,CAAA;AAExD,OAAO,KAAK,YAAY,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAK5C,KAAK,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAW,MAAM,aAAa,CAAA;AAExD,OAAO,KAAK,YAAY,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAK5C,KAAK,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC,CAAC,GAAG;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAOpG,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,cAAc,EAAE,cAAc,EAAE,CAAA;QAChC,cAAc,EAAE,GAAG,EAAE,CAAA;QACrB,gBAAgB,EAAE,MAAM,CAAA;KAC3B;CACJ;AAID,MAAM,CAAC,OAAO,OAAO,gBAAiB,YAAW,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;;IAIpE,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,SAAS;gBAJT,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EAC/B,MAAM,EAAE,MAAM,EAAE,EAChB,aAAa,EAAE,YAAY,CAAC,gBAAgB,EAC5C,SAAS,EAAE,YAAY;IAMnC;;OAEG;IACH,QAAQ;IAIR,IAAI;IAIE,GAAG;IAoHT,MAAM,CAAC,IAAI,CAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,gBAAgB,EAAE,QAAQ,EAAE,YAAY;CAItH"}
|
package/build/browser.js
CHANGED
|
@@ -58,15 +58,49 @@ export default class BrowserFramework {
|
|
|
58
58
|
}
|
|
59
59
|
// await browser.debug()
|
|
60
60
|
/**
|
|
61
|
-
*
|
|
61
|
+
* wait for test results or page errors
|
|
62
62
|
*/
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
63
|
+
let state = {};
|
|
64
|
+
await browser.waitUntil(async () => {
|
|
65
|
+
while (typeof state.failures !== 'number' && (!state.errors || state.errors.length === 0)) {
|
|
66
|
+
await sleep();
|
|
67
|
+
/**
|
|
68
|
+
* don't fetch events if user has called debug command
|
|
69
|
+
*/
|
|
70
|
+
if (this.#inDebugMode) {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
state = await browser?.execute(() => {
|
|
74
|
+
const failures = window.__wdioEvents__ && window.__wdioEvents__.length > 0
|
|
75
|
+
? window.__wdioFailures__
|
|
76
|
+
: null;
|
|
77
|
+
let viteError;
|
|
78
|
+
const viteErrorElem = document.querySelector('vite-error-overlay');
|
|
79
|
+
if (viteErrorElem && viteErrorElem.shadowRoot) {
|
|
80
|
+
const errorElems = Array.from(viteErrorElem.shadowRoot.querySelectorAll('pre'));
|
|
81
|
+
if (errorElems.length) {
|
|
82
|
+
viteError = errorElems.map((elem) => ({ message: elem.innerText }));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
const loadError = typeof window.__wdioErrors__ === 'undefined'
|
|
86
|
+
? [{ message: 'Failed to load test page' }]
|
|
87
|
+
: null;
|
|
88
|
+
const errors = viteError || window.__wdioErrors__ || loadError;
|
|
89
|
+
return { failures, errors, hasViteError: Boolean(viteError) };
|
|
90
|
+
}).catch((err) => ({ errors: [{ message: err.message }] }));
|
|
91
|
+
}
|
|
92
|
+
return true;
|
|
93
|
+
}, {
|
|
94
|
+
timeoutMsg: 'browser test timed out',
|
|
95
|
+
timeout: 15 * 1000
|
|
96
|
+
});
|
|
97
|
+
if (state.errors?.length) {
|
|
98
|
+
const errors = state.errors.map((ev) => state.hasViteError
|
|
99
|
+
? ev.message
|
|
100
|
+
: `${path.basename(ev.filename || spec)}: ${ev.message}`);
|
|
101
|
+
const { name, message, stack } = new Error(state.hasViteError
|
|
102
|
+
? `Test failed due to the following error: ${errors.join('\n')}`
|
|
103
|
+
: `Test failed due to following error(s):${sep}${errors.join(sep)}`);
|
|
70
104
|
process.send({
|
|
71
105
|
origin: 'worker',
|
|
72
106
|
name: 'error',
|
|
@@ -75,33 +109,12 @@ export default class BrowserFramework {
|
|
|
75
109
|
failures += 1;
|
|
76
110
|
continue;
|
|
77
111
|
}
|
|
78
|
-
|
|
112
|
+
await this.#fetchEvents(browser, spec, ++uid);
|
|
113
|
+
failures += state.failures || 0;
|
|
79
114
|
}
|
|
80
115
|
return failures;
|
|
81
116
|
}
|
|
82
117
|
async #fetchEvents(browser, spec, uid) {
|
|
83
|
-
/**
|
|
84
|
-
* wait until tests have finished and results are emitted to the window scope
|
|
85
|
-
*/
|
|
86
|
-
let failures = null;
|
|
87
|
-
await browser.waitUntil(async () => {
|
|
88
|
-
while (typeof failures !== 'number') {
|
|
89
|
-
await sleep();
|
|
90
|
-
/**
|
|
91
|
-
* don't fetch events if user has called debug command
|
|
92
|
-
*/
|
|
93
|
-
if (this.#inDebugMode) {
|
|
94
|
-
continue;
|
|
95
|
-
}
|
|
96
|
-
failures = await browser?.execute(() => (window.__wdioEvents__.length > 0
|
|
97
|
-
? window.__wdioFailures__
|
|
98
|
-
: null));
|
|
99
|
-
}
|
|
100
|
-
return true;
|
|
101
|
-
}, {
|
|
102
|
-
timeoutMsg: 'browser test timed out',
|
|
103
|
-
timeout: 15 * 1000
|
|
104
|
-
});
|
|
105
118
|
/**
|
|
106
119
|
* populate events to the reporter
|
|
107
120
|
*/
|
|
@@ -117,7 +130,6 @@ export default class BrowserFramework {
|
|
|
117
130
|
cid: this._cid
|
|
118
131
|
});
|
|
119
132
|
}
|
|
120
|
-
return failures;
|
|
121
133
|
}
|
|
122
134
|
#switchDebugState(cmd) {
|
|
123
135
|
this.#inDebugMode = cmd.args;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wdio/runner",
|
|
3
|
-
"version": "8.0.
|
|
3
|
+
"version": "8.0.5",
|
|
4
4
|
"description": "A WebdriverIO service that runs tests in arbitrary environments",
|
|
5
5
|
"author": "Christian Bromann <mail@bromann.dev>",
|
|
6
6
|
"homepage": "https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-runner",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"typeScriptVersion": "3.8.3",
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@wdio/config": "8.0.2",
|
|
30
|
-
"@wdio/globals": "8.0.
|
|
30
|
+
"@wdio/globals": "8.0.5",
|
|
31
31
|
"@wdio/logger": "8.0.0",
|
|
32
32
|
"@wdio/types": "8.0.0",
|
|
33
33
|
"@wdio/utils": "8.0.2",
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
"expect-webdriverio": "^4.0.1",
|
|
36
36
|
"gaze": "^1.1.2",
|
|
37
37
|
"webdriver": "8.0.2",
|
|
38
|
-
"webdriverio": "8.0.
|
|
38
|
+
"webdriverio": "8.0.5"
|
|
39
39
|
},
|
|
40
40
|
"publishConfig": {
|
|
41
41
|
"access": "public"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "3c1364b37331acc9124d7f5378937252d069936b"
|
|
44
44
|
}
|