@wdio/browser-runner 8.4.0 → 8.5.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.
@@ -1,8 +1,13 @@
1
+ import type { MaybeMocked } from '@vitest/spy';
2
+ import type { MockFactoryWithHelper } from '../types';
1
3
  /**
2
4
  * re-export mock module
3
5
  */
4
6
  export * from '@vitest/spy';
5
- type MockFactoryWithHelper = (importOriginal: <T = unknown>() => Promise<T>) => any;
6
7
  export declare function mock(path: string, factory?: MockFactoryWithHelper): Promise<unknown>;
7
8
  export declare function unmock(moduleName: string): void;
9
+ /**
10
+ * utility helper for type conversions
11
+ */
12
+ export declare function mocked<T>(item: T): MaybeMocked<T>;
8
13
  //# sourceMappingURL=spy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spy.d.ts","sourceRoot":"","sources":["../../src/browser/spy.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,cAAc,aAAa,CAAA;AAE3B,KAAK,qBAAqB,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,GAAG,OAAO,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AAapF,wBAAsB,IAAI,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,oBA4BxE;AAGD,wBAAgB,MAAM,CAAC,UAAU,EAAE,MAAM,QAExC"}
1
+ {"version":3,"file":"spy.d.ts","sourceRoot":"","sources":["../../src/browser/spy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAG9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAGrD;;GAEG;AACH,cAAc,aAAa,CAAA;AAa3B,wBAAsB,IAAI,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,oBA4BxE;AAGD,wBAAgB,MAAM,CAAC,UAAU,EAAE,MAAM,QAExC;AAeD;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,kBAA0C"}
@@ -55,3 +55,7 @@ socket.addEventListener('message', (ev) => {
55
55
  // ignore
56
56
  }
57
57
  });
58
+ /**
59
+ * utility helper for type conversions
60
+ */
61
+ export function mocked(item) { return item; }
package/build/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- import type { RunArgs, WorkerInstance } from '@wdio/local-runner';
2
1
  import LocalRunner from '@wdio/local-runner';
2
+ import type { RunArgs, WorkerInstance } from '@wdio/local-runner';
3
3
  import type { Options } from '@wdio/types';
4
- import type { BrowserRunnerOptions as BrowserRunnerOptionsImport } from './types.js';
4
+ import type { MaybeMocked, MaybeMockedDeep, MaybePartiallyMocked, MaybePartiallyMockedDeep } from '@vitest/spy';
5
+ import type { BrowserRunnerOptions as BrowserRunnerOptionsImport, MockFactoryWithHelper } from './types.js';
5
6
  export default class BrowserRunner extends LocalRunner {
6
7
  #private;
7
8
  private options;
@@ -31,4 +32,63 @@ declare global {
31
32
  * re-export mock types
32
33
  */
33
34
  export * from '@vitest/spy';
35
+ /**
36
+ * The following exports are meaningless and only there to allow proper type support.
37
+ * The actual implementation can be found in /src/browser.spy.ts
38
+ */
39
+ /**
40
+ * Makes all imports to passed module to be mocked.
41
+ *
42
+ * If there is a factory, will return it's result. The call to `mock` is hoisted to the top of the file,
43
+ * so you don't have access to variables declared in the global file scope, if you didn't put them before imports!
44
+ *
45
+ * If __mocks__ folder with file of the same name exist, all imports will return it.
46
+ *
47
+ * If there is no __mocks__ folder or a file with the same name inside, will call original module and mock it.
48
+ *
49
+ * @param {string} path Path to the module.
50
+ * @param {MockFactoryWithHelper} factory (optional) Factory for the mocked module. Has the highest priority.
51
+ */
52
+ export declare function mock(path: string, factory?: MockFactoryWithHelper): void;
53
+ /**
54
+ * Removes module from mocked registry. All subsequent calls to import will return original module even if it was mocked.
55
+ *
56
+ * @param path Path to the module.
57
+ */
58
+ export declare function unmock(moduleName: string): void;
59
+ /**
60
+ * Type helpers for TypeScript. In reality just returns the object that was passed.
61
+ * @example
62
+ * import example from './example'
63
+ * vi.mock('./example')
64
+ *
65
+ * test('1+1 equals 2' async () => {
66
+ * vi.mocked(example.calc).mockRestore()
67
+ *
68
+ * const res = example.calc(1, '+', 1)
69
+ *
70
+ * expect(res).toBe(2)
71
+ * })
72
+ *
73
+ * @param item Anything that can be mocked
74
+ * @returns
75
+ */
76
+ export declare function mocked<T>(item: T, deep?: true): MaybeMockedDeep<T>;
77
+ export declare function mocked<T>(item: T, deep?: false): MaybeMockedDeep<T>;
78
+ export declare function mocked<T>(item: T, options: {
79
+ partial?: false;
80
+ deep?: false;
81
+ }): MaybeMocked<T>;
82
+ export declare function mocked<T>(item: T, options: {
83
+ partial?: false;
84
+ deep: true;
85
+ }): MaybeMockedDeep<T>;
86
+ export declare function mocked<T>(item: T, options: {
87
+ partial: true;
88
+ deep?: false;
89
+ }): MaybePartiallyMocked<T>;
90
+ export declare function mocked<T>(item: T, options: {
91
+ partial: true;
92
+ deep: true;
93
+ }): MaybePartiallyMockedDeep<T>;
34
94
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACjE,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAQ5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAS1C,OAAO,KAAK,EAAE,oBAAoB,IAAI,0BAA0B,EAAmB,MAAM,YAAY,CAAA;AAGrG,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;;IAU9C,OAAO,CAAC,OAAO;IACf,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU;IAJzC,OAAO,CAAC,aAAa,CAAoB;gBAG7B,OAAO,EAAE,0BAA0B,EACjC,OAAO,EAAE,OAAO,CAAC,UAAU;IAczC;;OAEG;IACG,UAAU;IAoBhB,GAAG,CAAE,OAAO,EAAE,OAAO,GAAG,cAAc;IAoBtC;;;;OAIG;IACG,QAAQ;YA8CA,wBAAwB;CA2DzC;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,WAAW,CAAC;QAClB,UAAU,oBAAqB,SAAQ,0BAA0B;SAAG;KACvE;CACJ;AAED;;GAEG;AACH,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAO5C,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAS/G,OAAO,KAAK,EAAE,oBAAoB,IAAI,0BAA0B,EAAmB,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAG5H,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;;IAU9C,OAAO,CAAC,OAAO;IACf,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU;IAJzC,OAAO,CAAC,aAAa,CAAoB;gBAG7B,OAAO,EAAE,0BAA0B,EACjC,OAAO,EAAE,OAAO,CAAC,UAAU;IAczC;;OAEG;IACG,UAAU;IAoBhB,GAAG,CAAE,OAAO,EAAE,OAAO,GAAG,cAAc;IAoBtC;;;;OAIG;IACG,QAAQ;YA8CA,wBAAwB;CA2DzC;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,WAAW,CAAC;QAClB,UAAU,oBAAqB,SAAQ,0BAA0B;SAAG;KACvE;CACJ;AAED;;GAEG;AACH,cAAc,aAAa,CAAA;AAE3B;;;GAGG;AAEH;;;;;;;;;;;;GAYG;AAEH,wBAAgB,IAAI,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,QAAI;AAEvE;;;;GAIG;AAEH,wBAAgB,MAAM,CAAC,UAAU,EAAE,MAAM,QAAI;AAE7C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;AACnE,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;AACpE,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE;IACxC,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,IAAI,CAAC,EAAE,KAAK,CAAC;CAChB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACnB,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE;IACxC,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;CACd,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AACvB,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE;IACxC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC;CAChB,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAC5B,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE;IACxC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;CACd,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAA"}
package/build/index.js CHANGED
@@ -166,3 +166,31 @@ export default class BrowserRunner extends LocalRunner {
166
166
  * re-export mock types
167
167
  */
168
168
  export * from '@vitest/spy';
169
+ /**
170
+ * The following exports are meaningless and only there to allow proper type support.
171
+ * The actual implementation can be found in /src/browser.spy.ts
172
+ */
173
+ /**
174
+ * Makes all imports to passed module to be mocked.
175
+ *
176
+ * If there is a factory, will return it's result. The call to `mock` is hoisted to the top of the file,
177
+ * so you don't have access to variables declared in the global file scope, if you didn't put them before imports!
178
+ *
179
+ * If __mocks__ folder with file of the same name exist, all imports will return it.
180
+ *
181
+ * If there is no __mocks__ folder or a file with the same name inside, will call original module and mock it.
182
+ *
183
+ * @param {string} path Path to the module.
184
+ * @param {MockFactoryWithHelper} factory (optional) Factory for the mocked module. Has the highest priority.
185
+ */
186
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
187
+ export function mock(path, factory) { }
188
+ /**
189
+ * Removes module from mocked registry. All subsequent calls to import will return original module even if it was mocked.
190
+ *
191
+ * @param path Path to the module.
192
+ */
193
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
194
+ export function unmock(moduleName) { }
195
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
196
+ export function mocked(item, options) { }
package/build/types.d.ts CHANGED
@@ -115,5 +115,6 @@ export interface Environment {
115
115
  sessionId: string;
116
116
  injectGlobals: boolean;
117
117
  }
118
+ export type MockFactoryWithHelper = (importOriginal: <T = unknown>() => Promise<T>) => any;
118
119
  export {};
119
120
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAEjE,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,WAAW,EAAE,WAAW,CAAA;QACxB,iBAAiB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;KAC9C;CACJ;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAA;AACrF,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;AAChC,KAAK,gBAAgB,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,GAAG,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,GAAG,MAAM,CAAA;AAClL,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,qBAAqB,EAAE,SAAS,GAAG,WAAW,GAAG,sBAAsB,CAAC;IAClH;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAA;IACtC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,oBAAoB;IACjC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,OAAQ,SAAQ,OAAO,CAAC,gBAAgB;IACrD,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,GAAG,CAAA;IACT,GAAG,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,SAAS,CAAA;IACf,MAAM,EAAE,OAAO,CAAC,UAAU,CAAA;IAC1B,YAAY,EAAE,YAAY,CAAC,gBAAgB,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,OAAO,CAAA;CACzB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAEjE,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,WAAW,EAAE,WAAW,CAAA;QACxB,iBAAiB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;KAC9C;CACJ;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAA;AACrF,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;AAChC,KAAK,gBAAgB,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,GAAG,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,GAAG,MAAM,CAAA;AAClL,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,qBAAqB,EAAE,SAAS,GAAG,WAAW,GAAG,sBAAsB,CAAC;IAClH;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAA;IACtC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,oBAAoB;IACjC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,OAAQ,SAAQ,OAAO,CAAC,gBAAgB;IACrD,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,GAAG,CAAA;IACT,GAAG,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,SAAS,CAAA;IACf,MAAM,EAAE,OAAO,CAAC,UAAU,CAAA;IAC1B,YAAY,EAAE,YAAY,CAAC,gBAAgB,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,GAAG,OAAO,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/vite/constants.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAExC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAgB1F,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAsBrD,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/vite/constants.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAExC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAgB1F,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAiCrD,CAAA"}
@@ -23,10 +23,21 @@ export const DEFAULT_VITE_CONFIG = {
23
23
  logLevel: 'silent',
24
24
  plugins: [topLevelAwait()],
25
25
  build: {
26
- sourcemap: 'inline'
26
+ sourcemap: 'inline',
27
+ commonjsOptions: {
28
+ include: [/node_modules/],
29
+ }
27
30
  },
28
31
  optimizeDeps: {
29
- include: ['expect', 'jest-matcher-utils'],
32
+ /**
33
+ * the following deps are CJS packages and need to be optimized (compiled to ESM) by Vite
34
+ */
35
+ include: [
36
+ 'expect', 'jest-matcher-utils', 'serialize-error', 'minimatch', 'css-shorthand-properties',
37
+ 'lodash.merge', 'lodash.zip', 'lodash.clonedeep', 'lodash.pickby', 'lodash.flattendeep',
38
+ 'aria-query', 'grapheme-splitter', 'css-value', 'rgb2hex', 'p-iteration', 'fast-safe-stringify',
39
+ 'deepmerge-ts'
40
+ ],
30
41
  esbuildOptions: {
31
42
  logLevel: 'silent',
32
43
  // Node.js global to browser globalThis
@@ -1 +1 @@
1
- {"version":3,"file":"mockHoisting.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/mockHoisting.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAElC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAM7C,wBAAgB,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE,CAwM/D"}
1
+ {"version":3,"file":"mockHoisting.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/mockHoisting.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAElC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAM7C,wBAAgB,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE,CA2M/D"}
@@ -25,11 +25,14 @@ export function mockHoisting(mockHandler) {
25
25
  return '';
26
26
  }
27
27
  }
28
+ const preBundledDepName = path.basename(id).split('?')[0];
28
29
  const mockedMod = (
29
30
  // mocked file
30
31
  mockHandler.mocks.get(os.platform() === 'win32' ? `/${id}` : id) ||
31
32
  // mocked dependency
32
- mockHandler.mocks.get(path.basename(id, path.extname(id))));
33
+ mockHandler.mocks.get(path.basename(id, path.extname(id))) ||
34
+ // pre-bundled deps e.g. /node_modules/.vite/deps/algoliasearch_lite.js?v=e31c24e
35
+ [...mockHandler.mocks.values()].find((mock) => `${mock.path.replace('/', '_')}.js` === preBundledDepName));
33
36
  if (mockedMod) {
34
37
  const newCode = mockedMod.namedExports.map((ne) => {
35
38
  if (ne === 'default') {
@@ -1 +1 @@
1
- {"version":3,"file":"testrunner.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/testrunner.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AA0ClC,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,oBAAoB,GAAG,MAAM,EAAE,CAgI9E"}
1
+ {"version":3,"file":"testrunner.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/testrunner.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AA0ClC,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,oBAAoB,GAAG,MAAM,EAAE,CAwH9E"}
@@ -15,6 +15,12 @@ const protocolCommandList = Object.values(commands).map((endpoint) => Object.val
15
15
  const WDIO_PACKAGES = ['webdriverio', 'expect-webdriverio'];
16
16
  const virtualModuleId = 'virtual:wdio';
17
17
  const resolvedVirtualModuleId = '\0' + virtualModuleId;
18
+ /**
19
+ * these modules are used in Node.js environments only and
20
+ * don't need to be compiled, we just have them point to a
21
+ * mocked module that returns a matching interface without
22
+ * functionality
23
+ */
18
24
  const MODULES_TO_MOCK = [
19
25
  'import-meta-resolve', 'puppeteer-core', 'archiver', 'glob', 'devtools', 'ws'
20
26
  ];
@@ -22,11 +28,6 @@ const POLYFILLS = [
22
28
  ...builtinModules,
23
29
  ...builtinModules.map((m) => `node:${m}`)
24
30
  ].map((m) => m.replace('/promises', ''));
25
- const FETCH_FROM_ESM = [
26
- 'serialize-error', 'minimatch', 'css-shorthand-properties', 'lodash.merge', 'lodash.zip',
27
- 'lodash.clonedeep', 'lodash.pickby', 'lodash.flattendeep', 'aria-query', 'grapheme-splitter',
28
- 'css-value', 'rgb2hex', 'p-iteration', 'fast-safe-stringify', 'deepmerge-ts'
29
- ];
30
31
  export function testrunner(options) {
31
32
  const automationProtocolPath = `/@fs${url.pathToFileURL(path.resolve(__dirname, '..', '..', 'browser', 'driver.js')).pathname}`;
32
33
  const mockModulePath = path.resolve(__dirname, '..', '..', 'browser', 'mock.js');
@@ -60,13 +61,6 @@ export function testrunner(options) {
60
61
  if (MODULES_TO_MOCK.includes(id)) {
61
62
  return mockModulePath;
62
63
  }
63
- /**
64
- * some dependencies used by WebdriverIO packages are still using CJS
65
- * so we need to pull them from esm.sh to have them run in the browser
66
- */
67
- if (FETCH_FROM_ESM.includes(id)) {
68
- return `https://esm.sh/${id}`;
69
- }
70
64
  },
71
65
  load(id) {
72
66
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/vite/utils.ts"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE/D,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,oBAAoB,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,oBAAc,mBAsFpI;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,MAAM,gBAa7E;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAY7D;AAED,wBAAsB,qBAAqB,CAAE,GAAG,EAAE,MAAM,qBAavD;AAGD,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,+BAgBvD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,UAU9D"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/vite/utils.ts"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE/D,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,oBAAoB,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,oBAAc,mBAuFpI;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,MAAM,gBAa7E;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAY7D;AAED,wBAAsB,qBAAqB,CAAE,GAAG,EAAE,MAAM,qBAqBvD;AAGD,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,+BAgBvD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,UAU9D"}
@@ -38,7 +38,8 @@ export async function getTemplate(options, env, spec, processEnv = process.env)
38
38
  <head>
39
39
  <title>WebdriverIO Browser Test</title>
40
40
  <link rel="icon" type="image/x-icon" href="https://webdriver.io/img/favicon.png">
41
- <link rel="stylesheet" href="${mochaCSSHref}"><script type="module" src="${mochaJSSrc}"></script>
41
+ <link rel="stylesheet" href="${mochaCSSHref}">
42
+ <script type="module" src="${mochaJSSrc}"></script>
42
43
  <script src="/@fs/${sourceMapSupportDir}/browser-source-map-support.js"></script>
43
44
  <script type="module">
44
45
  sourceMapSupport.install()
@@ -102,6 +103,13 @@ export function normalizeId(id, base) {
102
103
  .replace(/\?$/, ''); // remove end query mark
103
104
  }
104
105
  export async function getFilesFromDirectory(dir) {
106
+ /**
107
+ * check if dir exists
108
+ */
109
+ const isExisting = await fs.access(dir).then(() => true, () => false);
110
+ if (!isExisting) {
111
+ return [];
112
+ }
105
113
  let files = await fs.readdir(dir);
106
114
  files = (await Promise.all(files.map(async (file) => {
107
115
  const filePath = path.join(dir, file);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wdio/browser-runner",
3
- "version": "8.4.0",
3
+ "version": "8.5.1",
4
4
  "description": "A WebdriverIO runner to run unit tests tests in the browser.",
5
5
  "author": "Christian Bromann <mail@bromann.dev>",
6
6
  "homepage": "https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-browser-runner",
@@ -32,8 +32,8 @@
32
32
  "@types/istanbul-lib-source-maps": "^4.0.1",
33
33
  "@types/node": "^18.14.0",
34
34
  "@vitest/spy": "^0.29.1",
35
- "@wdio/globals": "8.4.0",
36
- "@wdio/local-runner": "8.4.0",
35
+ "@wdio/globals": "8.5.1",
36
+ "@wdio/local-runner": "8.5.1",
37
37
  "@wdio/logger": "8.1.0",
38
38
  "@wdio/mocha-framework": "8.4.0",
39
39
  "@wdio/protocols": "8.3.11",
@@ -56,8 +56,8 @@
56
56
  "vite": "^4.1.3",
57
57
  "vite-plugin-istanbul": "^4.0.0",
58
58
  "vite-plugin-top-level-await": "^1.2.4",
59
- "webdriver": "8.4.0",
60
- "webdriverio": "8.4.0",
59
+ "webdriver": "8.5.1",
60
+ "webdriverio": "8.5.1",
61
61
  "ws": "^8.12.1"
62
62
  },
63
63
  "scripts": {
@@ -68,7 +68,7 @@
68
68
  },
69
69
  "devDependencies": {
70
70
  "@types/ws": "^8.5.4",
71
- "@wdio/runner": "8.4.0"
71
+ "@wdio/runner": "8.5.1"
72
72
  },
73
- "gitHead": "5d003ce35250c9d9dcecc9fd13a97257d6b349fe"
73
+ "gitHead": "3a0fcc3875d01630da633c71560963aa5c425cef"
74
74
  }