webdriverio 9.0.0-alpha.10 → 9.0.0-alpha.113

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.
Files changed (190) hide show
  1. package/build/cjs/index.js +0 -1
  2. package/build/commands/browser/$$.js +0 -1
  3. package/build/commands/browser/$.d.ts.map +1 -1
  4. package/build/commands/browser/$.js +10 -20
  5. package/build/commands/browser/action.js +0 -1
  6. package/build/commands/browser/actions.js +0 -1
  7. package/build/commands/browser/addCommand.js +0 -1
  8. package/build/commands/browser/call.js +0 -1
  9. package/build/commands/browser/custom$$.js +0 -1
  10. package/build/commands/browser/custom$.js +0 -1
  11. package/build/commands/browser/debug.js +0 -1
  12. package/build/commands/browser/deleteCookies.js +0 -1
  13. package/build/commands/browser/emulate.d.ts +6 -0
  14. package/build/commands/browser/emulate.d.ts.map +1 -1
  15. package/build/commands/browser/emulate.js +6 -1
  16. package/build/commands/browser/execute.js +0 -1
  17. package/build/commands/browser/executeAsync.js +0 -1
  18. package/build/commands/browser/getCookies.js +0 -1
  19. package/build/commands/browser/getPuppeteer.js +0 -1
  20. package/build/commands/browser/getWindowSize.js +0 -1
  21. package/build/commands/browser/keys.js +0 -1
  22. package/build/commands/browser/mock.d.ts +4 -7
  23. package/build/commands/browser/mock.d.ts.map +1 -1
  24. package/build/commands/browser/mock.js +4 -44
  25. package/build/commands/browser/mockClearAll.js +0 -1
  26. package/build/commands/browser/mockRestoreAll.js +0 -1
  27. package/build/commands/browser/newWindow.js +0 -1
  28. package/build/commands/browser/overwriteCommand.js +0 -1
  29. package/build/commands/browser/pause.js +0 -1
  30. package/build/commands/browser/react$$.js +0 -1
  31. package/build/commands/browser/react$.js +0 -1
  32. package/build/commands/browser/reloadSession.js +0 -1
  33. package/build/commands/browser/savePDF.js +0 -1
  34. package/build/commands/browser/saveRecordingScreen.js +0 -1
  35. package/build/commands/browser/saveScreenshot.js +0 -1
  36. package/build/commands/browser/scroll.js +0 -1
  37. package/build/commands/browser/setCookies.js +0 -1
  38. package/build/commands/browser/setTimeout.js +0 -1
  39. package/build/commands/browser/setWindowSize.js +0 -1
  40. package/build/commands/browser/switchWindow.js +0 -1
  41. package/build/commands/browser/throttle.d.ts +1 -1
  42. package/build/commands/browser/throttle.d.ts.map +1 -1
  43. package/build/commands/browser/throttle.js +0 -1
  44. package/build/commands/browser/throttleCPU.js +0 -1
  45. package/build/commands/browser/throttleNetwork.d.ts +1 -1
  46. package/build/commands/browser/throttleNetwork.d.ts.map +1 -1
  47. package/build/commands/browser/throttleNetwork.js +0 -1
  48. package/build/commands/browser/touchAction.js +0 -1
  49. package/build/commands/browser/uploadFile.js +0 -1
  50. package/build/commands/browser/url.js +0 -1
  51. package/build/commands/browser/waitUntil.js +0 -1
  52. package/build/commands/browser.js +0 -1
  53. package/build/commands/constant.js +0 -1
  54. package/build/commands/element/$$.js +0 -1
  55. package/build/commands/element/$.js +0 -1
  56. package/build/commands/element/addValue.js +0 -1
  57. package/build/commands/element/clearValue.js +0 -1
  58. package/build/commands/element/click.js +0 -1
  59. package/build/commands/element/custom$$.js +0 -1
  60. package/build/commands/element/custom$.js +0 -1
  61. package/build/commands/element/doubleClick.js +0 -1
  62. package/build/commands/element/dragAndDrop.js +0 -1
  63. package/build/commands/element/execute.d.ts +0 -1
  64. package/build/commands/element/execute.d.ts.map +1 -1
  65. package/build/commands/element/execute.js +0 -1
  66. package/build/commands/element/executeAsync.d.ts +0 -1
  67. package/build/commands/element/executeAsync.d.ts.map +1 -1
  68. package/build/commands/element/executeAsync.js +0 -1
  69. package/build/commands/element/getAttribute.js +0 -1
  70. package/build/commands/element/getCSSProperty.d.ts +1 -1
  71. package/build/commands/element/getCSSProperty.d.ts.map +1 -1
  72. package/build/commands/element/getCSSProperty.js +0 -1
  73. package/build/commands/element/getComputedLabel.js +0 -1
  74. package/build/commands/element/getComputedRole.js +0 -1
  75. package/build/commands/element/getHTML.d.ts.map +1 -1
  76. package/build/commands/element/getHTML.js +30 -51
  77. package/build/commands/element/getLocation.js +0 -1
  78. package/build/commands/element/getProperty.js +0 -1
  79. package/build/commands/element/getSize.js +0 -1
  80. package/build/commands/element/getTagName.js +0 -1
  81. package/build/commands/element/getText.js +0 -1
  82. package/build/commands/element/getValue.js +0 -1
  83. package/build/commands/element/isClickable.js +0 -1
  84. package/build/commands/element/isDisplayed.js +0 -1
  85. package/build/commands/element/isEnabled.js +0 -1
  86. package/build/commands/element/isEqual.js +0 -1
  87. package/build/commands/element/isExisting.js +0 -1
  88. package/build/commands/element/isFocused.js +0 -1
  89. package/build/commands/element/isSelected.js +0 -1
  90. package/build/commands/element/isStable.js +0 -1
  91. package/build/commands/element/moveTo.js +0 -1
  92. package/build/commands/element/nextElement.d.ts +1 -1
  93. package/build/commands/element/nextElement.d.ts.map +1 -1
  94. package/build/commands/element/nextElement.js +0 -1
  95. package/build/commands/element/parentElement.d.ts +1 -1
  96. package/build/commands/element/parentElement.d.ts.map +1 -1
  97. package/build/commands/element/parentElement.js +0 -1
  98. package/build/commands/element/previousElement.d.ts +1 -1
  99. package/build/commands/element/previousElement.d.ts.map +1 -1
  100. package/build/commands/element/previousElement.js +0 -1
  101. package/build/commands/element/react$$.js +0 -1
  102. package/build/commands/element/react$.js +0 -1
  103. package/build/commands/element/saveScreenshot.js +0 -1
  104. package/build/commands/element/scrollIntoView.js +0 -1
  105. package/build/commands/element/selectByAttribute.js +0 -1
  106. package/build/commands/element/selectByIndex.js +0 -1
  107. package/build/commands/element/selectByVisibleText.js +0 -1
  108. package/build/commands/element/setValue.js +0 -1
  109. package/build/commands/element/shadow$$.js +0 -1
  110. package/build/commands/element/shadow$.js +0 -1
  111. package/build/commands/element/touchAction.js +0 -1
  112. package/build/commands/element/waitForClickable.js +0 -1
  113. package/build/commands/element/waitForDisplayed.js +0 -1
  114. package/build/commands/element/waitForEnabled.js +0 -1
  115. package/build/commands/element/waitForExist.js +0 -1
  116. package/build/commands/element/waitForStable.js +0 -1
  117. package/build/commands/element/waitUntil.js +0 -1
  118. package/build/commands/element.js +0 -1
  119. package/build/commands/mock/abort.js +0 -1
  120. package/build/commands/mock/abortOnce.js +0 -1
  121. package/build/commands/mock/clear.js +0 -1
  122. package/build/commands/mock/respond.js +0 -1
  123. package/build/commands/mock/respondOnce.js +0 -1
  124. package/build/commands/mock/restore.js +0 -1
  125. package/build/constants.js +0 -1
  126. package/build/index.d.ts +3 -5
  127. package/build/index.d.ts.map +1 -1
  128. package/build/index.js +3 -3
  129. package/build/middlewares.d.ts.map +1 -1
  130. package/build/middlewares.js +0 -1
  131. package/build/multiremote.js +0 -1
  132. package/build/protocol-stub.js +0 -1
  133. package/build/scripts/customElement.d.ts.map +1 -1
  134. package/build/scripts/customElement.js +6 -3
  135. package/build/scripts/getHTML.js +0 -1
  136. package/build/scripts/getHTMLShadow.d.ts +11 -8
  137. package/build/scripts/getHTMLShadow.d.ts.map +1 -1
  138. package/build/scripts/getHTMLShadow.js +20 -31
  139. package/build/scripts/getProperty.js +0 -1
  140. package/build/scripts/isDescendant.js +0 -1
  141. package/build/scripts/isElementClickable.js +0 -1
  142. package/build/scripts/isElementDisplayed.js +0 -1
  143. package/build/scripts/isElementInViewport.js +0 -1
  144. package/build/scripts/isElementStable.js +0 -1
  145. package/build/scripts/isFocused.js +0 -1
  146. package/build/scripts/newWindow.js +0 -1
  147. package/build/scripts/resq.js +0 -1
  148. package/build/scripts/shadowFnFactory.js +0 -1
  149. package/build/shadowRoot.d.ts +25 -15
  150. package/build/shadowRoot.d.ts.map +1 -1
  151. package/build/shadowRoot.js +153 -49
  152. package/build/types.d.ts +29 -37
  153. package/build/types.d.ts.map +1 -1
  154. package/build/types.js +0 -1
  155. package/build/utils/SevereServiceError.js +0 -1
  156. package/build/utils/Timer.js +0 -1
  157. package/build/utils/actions/base.js +0 -1
  158. package/build/utils/actions/index.js +0 -1
  159. package/build/utils/actions/key.js +0 -1
  160. package/build/utils/actions/pointer.js +0 -1
  161. package/build/utils/actions/wheel.js +0 -1
  162. package/build/utils/detectBackend.js +0 -1
  163. package/build/utils/driver.js +0 -1
  164. package/build/utils/findStrategy.js +0 -1
  165. package/build/utils/getElementObject.d.ts +3 -3
  166. package/build/utils/getElementObject.d.ts.map +1 -1
  167. package/build/utils/getElementObject.js +20 -11
  168. package/build/utils/implicitWait.js +0 -1
  169. package/build/utils/index.d.ts +2 -8
  170. package/build/utils/index.d.ts.map +1 -1
  171. package/build/utils/index.js +71 -96
  172. package/build/utils/interception/index.d.ts +76 -22
  173. package/build/utils/interception/index.d.ts.map +1 -1
  174. package/build/utils/interception/index.js +297 -26
  175. package/build/utils/interception/types.d.ts +18 -85
  176. package/build/utils/interception/types.d.ts.map +1 -1
  177. package/build/utils/interception/types.js +0 -1
  178. package/build/utils/interception/utils.d.ts +17 -0
  179. package/build/utils/interception/utils.d.ts.map +1 -0
  180. package/build/utils/interception/utils.js +87 -0
  181. package/build/utils/refetchElement.d.ts.map +1 -1
  182. package/build/utils/refetchElement.js +6 -3
  183. package/build/utils/thirdParty/querySelectorShadowDom.js +0 -1
  184. package/package.json +11 -9
  185. package/build/utils/interception/devtools.d.ts +0 -64
  186. package/build/utils/interception/devtools.d.ts.map +0 -1
  187. package/build/utils/interception/devtools.js +0 -268
  188. package/build/utils/interception/webdriver.d.ts +0 -49
  189. package/build/utils/interception/webdriver.d.ts.map +0 -1
  190. package/build/utils/interception/webdriver.js +0 -76
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "webdriverio",
3
3
  "description": "Next-gen browser and mobile automation test framework for Node.js",
4
- "version": "9.0.0-alpha.10",
4
+ "version": "9.0.0-alpha.113+ceeac488e",
5
5
  "homepage": "https://webdriver.io",
6
6
  "author": "Christian Bromann <mail@bromann.dev>",
7
7
  "license": "MIT",
@@ -68,12 +68,12 @@
68
68
  },
69
69
  "dependencies": {
70
70
  "@types/node": "^20.11.30",
71
- "@wdio/config": "9.0.0-alpha.0",
72
- "@wdio/logger": "9.0.0-alpha.0",
73
- "@wdio/protocols": "9.0.0-alpha.0",
74
- "@wdio/repl": "9.0.0-alpha.0",
75
- "@wdio/types": "9.0.0-alpha.0",
76
- "@wdio/utils": "9.0.0-alpha.0",
71
+ "@wdio/config": "9.0.0-alpha.113+ceeac488e",
72
+ "@wdio/logger": "9.0.0-alpha.113+ceeac488e",
73
+ "@wdio/protocols": "9.0.0-alpha.113+ceeac488e",
74
+ "@wdio/repl": "9.0.0-alpha.113+ceeac488e",
75
+ "@wdio/types": "9.0.0-alpha.113+ceeac488e",
76
+ "@wdio/utils": "9.0.0-alpha.113+ceeac488e",
77
77
  "archiver": "^7.0.1",
78
78
  "aria-query": "^5.3.0",
79
79
  "cheerio": "^1.0.0-rc.12",
@@ -90,7 +90,8 @@
90
90
  "resq": "^1.11.0",
91
91
  "rgb2hex": "0.2.5",
92
92
  "serialize-error": "^11.0.3",
93
- "webdriver": "9.0.0-alpha.0"
93
+ "urlpattern-polyfill": "^10.0.0",
94
+ "webdriver": "9.0.0-alpha.113+ceeac488e"
94
95
  },
95
96
  "peerDependencies": {
96
97
  "puppeteer-core": "^22.3.0"
@@ -99,5 +100,6 @@
99
100
  "puppeteer-core": {
100
101
  "optional": true
101
102
  }
102
- }
103
+ },
104
+ "gitHead": "ceeac488e86da4d6ffad891632183085e4332be7"
103
105
  }
@@ -1,64 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- import type { CDPSession } from 'puppeteer-core';
3
- import Interception from './index.js';
4
- import type { Matches, MockOverwrite, MockResponseParams, ErrorReason } from './types.js';
5
- type ClientResponse = {
6
- body: string;
7
- base64Encoded?: boolean;
8
- };
9
- interface HeaderEntry {
10
- name: string;
11
- value: string;
12
- }
13
- type Event = {
14
- requestId: string;
15
- request: Matches & {
16
- mockedResponse: string | Buffer;
17
- };
18
- responseStatusCode?: number;
19
- responseHeaders: HeaderEntry[];
20
- responseErrorReason?: string;
21
- };
22
- export default class DevtoolsInterception extends Interception {
23
- private restored;
24
- static handleRequestInterception(client: CDPSession, mocks: Set<Interception>): (event: Event) => Promise<void | ClientResponse>;
25
- /**
26
- * allows access to all requests made with given pattern
27
- */
28
- get calls(): Matches[];
29
- /**
30
- * Resets all information stored in the `mock.calls` set.
31
- */
32
- clear(): void;
33
- /**
34
- * Does everything that `mock.clear()` does, and also
35
- * removes any mocked return values or implementations.
36
- * Restored mock does not emit events and could not mock responses
37
- */
38
- restore(sessionMocks?: Record<string, Set<Interception>>, cdpSessions?: Record<string, CDPSession>): Promise<void>;
39
- /**
40
- * Always respond with same overwrite
41
- * @param {*} overwrites payload to overwrite the response
42
- * @param {*} params additional respond parameters to overwrite
43
- */
44
- respond(overwrite: MockOverwrite, params?: MockResponseParams): void;
45
- /**
46
- * Respond request once with given overwrite
47
- * @param {*} overwrites payload to overwrite the response
48
- * @param {*} params additional respond parameters to overwrite
49
- */
50
- respondOnce(overwrite: MockOverwrite, params?: MockResponseParams): void;
51
- /**
52
- * Abort the request with an error code
53
- * @param {string} errorCode error code of the response
54
- */
55
- abort(errorReason: ErrorReason, sticky?: boolean): void;
56
- /**
57
- * Abort the request once with an error code
58
- * @param {string} errorReason error code of the response
59
- */
60
- abortOnce(errorReason: ErrorReason): void;
61
- private ensureNotRestored;
62
- }
63
- export {};
64
- //# sourceMappingURL=devtools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../../../src/utils/interception/devtools.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEhD,OAAO,YAAY,MAAM,YAAY,CAAA;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAOzF,KAAK,cAAc,GAAG;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,UAAU,WAAW;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,KAAK,KAAK,GAAG;IACT,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,OAAO,GAAG;QAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IACtD,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,eAAe,EAAE,WAAW,EAAE,CAAA;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC/B,CAAA;AAID,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,YAAY;IAC1D,OAAO,CAAC,QAAQ,CAAQ;IAExB,MAAM,CAAC,yBAAyB,CAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;IA4KjI;;OAEG;IACH,IAAI,KAAK,cAER;IAED;;OAEG;IACH,KAAK;IAIL;;;;OAIG;IACG,OAAO,CAAE,YAAY,oCAAgB,EAAE,WAAW,6BAAe;IAqBvE;;;;OAIG;IACH,OAAO,CAAE,SAAS,EAAE,aAAa,EAAE,MAAM,GAAE,kBAAuB;IAKlE;;;;OAIG;IACH,WAAW,CAAE,SAAS,EAAE,aAAa,EAAE,MAAM,GAAE,kBAAuB;IAKtE;;;OAGG;IACH,KAAK,CAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAE,OAAc;IAQvD;;;OAGG;IACH,SAAS,CAAE,WAAW,EAAE,WAAW;IAInC,OAAO,CAAC,iBAAiB;CAK5B"}
@@ -1,268 +0,0 @@
1
- import fs from 'node:fs/promises';
2
- import path from 'node:path';
3
- import logger from '@wdio/logger';
4
- import Interception from './index.js';
5
- import { containsHeaderObject } from '../index.js';
6
- import { ERROR_REASON } from '../../constants.js';
7
- import { CDP_SESSIONS, SESSION_MOCKS } from '../../commands/browser/mock.js';
8
- const log = logger('webdriverio');
9
- export default class DevtoolsInterception extends Interception {
10
- restored = false;
11
- static handleRequestInterception(client, mocks) {
12
- return async (event) => {
13
- // responseHeaders and responseStatusCode are only present in Response stage
14
- // https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#event-requestPaused
15
- const isRequest = !event.responseHeaders && !event.responseErrorReason;
16
- event.responseStatusCode ||= event.responseErrorReason ? 0 : 200;
17
- event.responseHeaders ||= [];
18
- const responseHeaders = event.responseHeaders.reduce((headers, { name, value }) => {
19
- headers[name] = value;
20
- return headers;
21
- }, {});
22
- let mockResponded = false;
23
- for (const mock of mocks) {
24
- /**
25
- * skip response mocks in Request stage
26
- */
27
- if (isRequest && (mock.respondOverwrites.length === 0 || // nothing to do in Request stage
28
- (!mock.respondOverwrites[0].errorReason && // skip if not going to abort a request
29
- // or want to fetch response
30
- mock.respondOverwrites[0].params &&
31
- mock.respondOverwrites[0].params.fetchResponse !== false))) {
32
- continue;
33
- }
34
- /**
35
- * match mock url
36
- */
37
- if (!Interception.isMatchingRequest(mock.url, event.request.url)) {
38
- continue;
39
- }
40
- /**
41
- * Add statusCode and responseHeaders to request to be used in expect-webdriverio
42
- */
43
- event.request.statusCode = event.responseStatusCode;
44
- event.request.responseHeaders = { ...responseHeaders };
45
- /**
46
- * match filter options
47
- */
48
- if (filterMethod(event.request.method, mock.filterOptions.method) ||
49
- filterHeaders(event.request.headers, mock.filterOptions.requestHeaders) ||
50
- filterHeaders(responseHeaders, mock.filterOptions.headers) ||
51
- filterRequest(event.request.postData, mock.filterOptions.postData) ||
52
- filterStatusCode(event.responseStatusCode, mock.filterOptions.statusCode)) {
53
- continue;
54
- }
55
- mock.emit('request', event);
56
- const { requestId, request, responseStatusCode } = event;
57
- const { body, base64Encoded = undefined } = isRequest ? { body: '' } : await client.send('Fetch.getResponseBody', { requestId }).catch(/* istanbul ignore next */ () => ({}));
58
- request.body = base64Encoded ? Buffer.from(body, 'base64').toString('utf8') : body;
59
- const contentTypeHeader = Object.keys(responseHeaders).find(h => h.toLowerCase() === 'content-type') || '';
60
- const responseContentType = responseHeaders[contentTypeHeader];
61
- request.body = responseContentType && responseContentType.includes('application/json')
62
- ? tryParseJson(request.body)
63
- : request.body;
64
- mock.matches.push(request);
65
- /**
66
- * no stubbing if no overwrites were defined
67
- */
68
- if (mockResponded || mock.respondOverwrites.length === 0) {
69
- mock.emit('match', request);
70
- mock.emit('continue', requestId);
71
- continue;
72
- }
73
- const { errorReason, overwrite, params = {} } = mock.respondOverwrites[0].sticky
74
- ? mock.respondOverwrites[0]
75
- : mock.respondOverwrites.shift() || {};
76
- /**
77
- * when response is modified
78
- */
79
- if (overwrite !== undefined) {
80
- let newBody = overwrite;
81
- if (typeof overwrite === 'function') {
82
- newBody = await overwrite(request, client);
83
- }
84
- const isBodyUndefined = typeof newBody === 'undefined';
85
- if (isBodyUndefined) {
86
- newBody = '';
87
- }
88
- if (typeof newBody !== 'string') {
89
- newBody = JSON.stringify(newBody);
90
- }
91
- let responseCode = typeof params.statusCode === 'function' ? params.statusCode(request) : params.statusCode || responseStatusCode;
92
- let responseHeaders = [
93
- ...event.responseHeaders,
94
- ...Object.entries(typeof params.headers === 'function' ? params.headers(request) : params.headers || {}).map(([name, value]) => ({ name, value }))
95
- ];
96
- /**
97
- * check if local file and load it
98
- */
99
- const responseFilePath = path.isAbsolute(newBody) ? newBody : path.join(process.cwd(), newBody);
100
- const responseFileAccessible = await fs.access(responseFilePath).then(() => true, () => false);
101
- if (newBody.length > 0 && responseFileAccessible) {
102
- newBody = (await fs.readFile(responseFilePath));
103
- }
104
- else if (newBody.startsWith('http')) {
105
- responseCode = 301;
106
- /**
107
- * filter out possible available location header
108
- */
109
- responseHeaders = responseHeaders.filter(({ name }) => name.toLowerCase() !== 'location');
110
- responseHeaders.push({ name: 'Location', value: newBody });
111
- }
112
- request.mockedResponse = newBody;
113
- mock.emit('match', request);
114
- const overwriteData = { requestId, responseCode, responseHeaders, body: isBodyUndefined ? undefined : newBody };
115
- mock.emit('overwrite', overwriteData);
116
- mockResponded = true;
117
- const body = typeof overwriteData.body === 'undefined'
118
- ? undefined
119
- : (overwriteData.body instanceof Buffer
120
- ? overwriteData.body
121
- : Buffer.from(overwriteData.body, 'utf8')).toString('base64');
122
- await client.send('Fetch.fulfillRequest', {
123
- ...overwriteData,
124
- body
125
- }).catch(/* istanbul ignore next */ logFetchError);
126
- continue;
127
- }
128
- /**
129
- * when request is aborted
130
- */
131
- if (errorReason) {
132
- const failData = { requestId, errorReason };
133
- mock.emit('fail', failData);
134
- mockResponded = true;
135
- await client.send('Fetch.failRequest', failData).catch(/* istanbul ignore next */ logFetchError);
136
- continue;
137
- }
138
- }
139
- if (!mockResponded) {
140
- return client.send('Fetch.continueRequest', { requestId: event.requestId }).catch(/* istanbul ignore next */ logFetchError);
141
- }
142
- };
143
- }
144
- /**
145
- * allows access to all requests made with given pattern
146
- */
147
- get calls() {
148
- return this.matches;
149
- }
150
- /**
151
- * Resets all information stored in the `mock.calls` set.
152
- */
153
- clear() {
154
- this.matches = [];
155
- }
156
- /**
157
- * Does everything that `mock.clear()` does, and also
158
- * removes any mocked return values or implementations.
159
- * Restored mock does not emit events and could not mock responses
160
- */
161
- async restore(sessionMocks = SESSION_MOCKS, cdpSessions = CDP_SESSIONS) {
162
- this.clear();
163
- this.respondOverwrites = [];
164
- this.restored = true;
165
- const handle = await this.browser.getWindowHandle();
166
- log.trace(`Restoring mock for ${handle}`);
167
- sessionMocks[handle].delete(this);
168
- if (sessionMocks[handle].size) {
169
- return;
170
- }
171
- log.trace(`Disabling fetch domain for ${handle}`);
172
- return cdpSessions[handle].send('Fetch.disable')
173
- .then(() => {
174
- delete sessionMocks[handle];
175
- delete cdpSessions[handle];
176
- }).catch(/* istanbul ignore next */ logFetchError);
177
- }
178
- /**
179
- * Always respond with same overwrite
180
- * @param {*} overwrites payload to overwrite the response
181
- * @param {*} params additional respond parameters to overwrite
182
- */
183
- respond(overwrite, params = {}) {
184
- this.ensureNotRestored();
185
- this.respondOverwrites.push({ overwrite, params, sticky: true });
186
- }
187
- /**
188
- * Respond request once with given overwrite
189
- * @param {*} overwrites payload to overwrite the response
190
- * @param {*} params additional respond parameters to overwrite
191
- */
192
- respondOnce(overwrite, params = {}) {
193
- this.ensureNotRestored();
194
- this.respondOverwrites.push({ overwrite, params });
195
- }
196
- /**
197
- * Abort the request with an error code
198
- * @param {string} errorCode error code of the response
199
- */
200
- abort(errorReason, sticky = true) {
201
- this.ensureNotRestored();
202
- if (typeof errorReason !== 'string' || !ERROR_REASON.includes(errorReason)) {
203
- throw new Error(`Invalid value for errorReason, allowed are: ${ERROR_REASON.join(', ')}`);
204
- }
205
- this.respondOverwrites.push({ errorReason, sticky });
206
- }
207
- /**
208
- * Abort the request once with an error code
209
- * @param {string} errorReason error code of the response
210
- */
211
- abortOnce(errorReason) {
212
- this.abort(errorReason, false);
213
- }
214
- ensureNotRestored() {
215
- if (this.restored) {
216
- throw new Error('This can\'t be done on restored mock');
217
- }
218
- }
219
- }
220
- const filterMethod = (method, expected) => {
221
- if (typeof expected === 'undefined') {
222
- return false;
223
- }
224
- if (typeof expected === 'function') {
225
- return expected(method) !== true;
226
- }
227
- return expected.toLowerCase() !== method.toLowerCase();
228
- };
229
- const filterHeaders = (responseHeaders, expected) => {
230
- if (typeof expected === 'undefined') {
231
- return false;
232
- }
233
- if (typeof expected === 'function') {
234
- return expected(responseHeaders) !== true;
235
- }
236
- return !containsHeaderObject(responseHeaders, expected);
237
- };
238
- const filterRequest = (postData, expected) => {
239
- if (typeof expected === 'undefined') {
240
- return false;
241
- }
242
- if (typeof expected === 'function') {
243
- return expected(postData) !== true;
244
- }
245
- return postData !== expected;
246
- };
247
- const filterStatusCode = (statusCode, expected) => {
248
- if (typeof expected === 'undefined') {
249
- return false;
250
- }
251
- if (typeof expected === 'function') {
252
- return expected(statusCode) !== true;
253
- }
254
- return statusCode !== expected;
255
- };
256
- const tryParseJson = (body) => {
257
- try {
258
- return JSON.parse(body) || body;
259
- }
260
- catch {
261
- return body;
262
- }
263
- };
264
- const logFetchError = (err) => {
265
- /* istanbul ignore next */
266
- log.debug(err?.message);
267
- };
268
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2dG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvaW50ZXJjZXB0aW9uL2RldnRvb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2pDLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUM1QixPQUFPLE1BQU0sTUFBTSxjQUFjLENBQUE7QUFHakMsT0FBTyxZQUFZLE1BQU0sWUFBWSxDQUFBO0FBRXJDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUU1RSxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7QUFzQmpDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sb0JBQXFCLFNBQVEsWUFBWTtJQUNsRCxRQUFRLEdBQUcsS0FBSyxDQUFBO0lBRXhCLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBRSxNQUFrQixFQUFFLEtBQXdCO1FBQzFFLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ25CLDRFQUE0RTtZQUM1RSxvRkFBb0Y7WUFDcEYsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFBO1lBRXRFLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFBO1lBQ2hFLEtBQUssQ0FBQyxlQUFlLEtBQUssRUFBRSxDQUFBO1lBRTVCLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtB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
@@ -1,49 +0,0 @@
1
- import Interception from './index.js';
2
- import type { Matches, MockResponseParams, MockOverwrite } from './types.js';
3
- /**
4
- * Network interception class based on a WebDriver compliant endpoint.
5
- * Instead of directly using the CDP with Puppeteer this version of the
6
- * class uses a WebDriver extension to trigger the same behavior on a
7
- * compliant backend.
8
- */
9
- export default class WebDriverInterception extends Interception {
10
- mockId?: string;
11
- init(): Promise<void>;
12
- on(): this;
13
- /**
14
- * allows access to all requests made with given pattern
15
- */
16
- get calls(): Matches[] | Promise<Matches[]>;
17
- /**
18
- * Resets all information stored in the `mock.calls` set.
19
- */
20
- clear(): Promise<void> | Promise<Promise<void>>;
21
- /**
22
- * Does everything that `mock.clear()` does, and also
23
- * removes any mocked return values or implementations.
24
- */
25
- restore(): Promise<void>;
26
- /**
27
- * Always respond with same overwrite
28
- * @param {*} overwrites payload to overwrite the response
29
- * @param {*} params additional respond parameters to overwrite
30
- */
31
- respond(overwrite: MockOverwrite, params?: MockResponseParams): Promise<void> | Promise<Promise<void>>;
32
- /**
33
- * Respond request once with given overwrite
34
- * @param {*} overwrites payload to overwrite the response
35
- * @param {*} params additional respond parameters to overwrite
36
- */
37
- respondOnce(overwrite: MockOverwrite, params?: MockResponseParams): Promise<void> | Promise<Promise<void>>;
38
- /**
39
- * Abort the request with an error code
40
- * @param {string} errorCode error code of the response
41
- */
42
- abort(errorReason: string, sticky?: boolean): Promise<void> | Promise<Promise<void>>;
43
- /**
44
- * Abort the request once with an error code
45
- * @param {string} errorReason error code of the response
46
- */
47
- abortOnce(errorReason: string): Promise<void> | Promise<Promise<void>>;
48
- }
49
- //# sourceMappingURL=webdriver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webdriver.d.ts","sourceRoot":"","sources":["../../../src/utils/interception/webdriver.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,YAAY,CAAA;AAErC,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE5E;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,YAAY;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAA;IAET,IAAI;IAQV,EAAE;IAOF;;OAEG;IACH,IAAI,KAAK,mCAIR;IAED;;OAEG;IACH,KAAK;IAKL;;;OAGG;IACG,OAAO;IAKb;;;;OAIG;IACH,OAAO,CAAE,SAAS,EAAE,aAAa,EAAE,MAAM,GAAE,kBAAuB;IASlE;;;;OAIG;IACH,WAAW,CAAE,SAAS,EAAE,aAAa,EAAE,MAAM,GAAE,kBAAuB;IAStE;;;OAGG;IACH,KAAK,CAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAE,OAAc;IAYlD;;;OAGG;IACH,SAAS,CAAE,WAAW,EAAE,MAAM;CAGjC"}
@@ -1,76 +0,0 @@
1
- import Interception from './index.js';
2
- import { ERROR_REASON } from '../../constants.js';
3
- /**
4
- * Network interception class based on a WebDriver compliant endpoint.
5
- * Instead of directly using the CDP with Puppeteer this version of the
6
- * class uses a WebDriver extension to trigger the same behavior on a
7
- * compliant backend.
8
- */
9
- export default class WebDriverInterception extends Interception {
10
- mockId;
11
- async init() {
12
- if (this.url instanceof RegExp) {
13
- throw new Error('Regular Expressions as mock url are not supported');
14
- }
15
- const { mockId } = await this.browser.mockRequest(this.url, this.filterOptions);
16
- this.mockId = mockId;
17
- }
18
- on() {
19
- throw new Error('Not implemented');
20
- // eslint-disable-next-line no-unreachable
21
- return this;
22
- }
23
- /**
24
- * allows access to all requests made with given pattern
25
- */
26
- get calls() {
27
- return this.browser.call(() => this.browser.getMockCalls(this.mockId));
28
- }
29
- /**
30
- * Resets all information stored in the `mock.calls` set.
31
- */
32
- clear() {
33
- return this.browser.call(async () => this.browser.clearMockCalls(this.mockId));
34
- }
35
- /**
36
- * Does everything that `mock.clear()` does, and also
37
- * removes any mocked return values or implementations.
38
- */
39
- async restore() {
40
- await this.browser.call(async () => this.browser.clearMockCalls(this.mockId, true));
41
- }
42
- /**
43
- * Always respond with same overwrite
44
- * @param {*} overwrites payload to overwrite the response
45
- * @param {*} params additional respond parameters to overwrite
46
- */
47
- respond(overwrite, params = {}) {
48
- return this.browser.call(async () => this.browser.respondMock(this.mockId, { overwrite, params, sticky: true }));
49
- }
50
- /**
51
- * Respond request once with given overwrite
52
- * @param {*} overwrites payload to overwrite the response
53
- * @param {*} params additional respond parameters to overwrite
54
- */
55
- respondOnce(overwrite, params = {}) {
56
- return this.browser.call(async () => this.browser.respondMock(this.mockId, { overwrite, params }));
57
- }
58
- /**
59
- * Abort the request with an error code
60
- * @param {string} errorCode error code of the response
61
- */
62
- abort(errorReason, sticky = true) {
63
- if (typeof errorReason !== 'string' || !ERROR_REASON.includes(errorReason)) {
64
- throw new Error(`Invalid value for errorReason, allowed are: ${ERROR_REASON.join(', ')}`);
65
- }
66
- return this.browser.call(async () => this.browser.respondMock(this.mockId, { errorReason, sticky }));
67
- }
68
- /**
69
- * Abort the request once with an error code
70
- * @param {string} errorReason error code of the response
71
- */
72
- abortOnce(errorReason) {
73
- return this.abort(errorReason, false);
74
- }
75
- }
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViZHJpdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2ludGVyY2VwdGlvbi93ZWJkcml2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxZQUFZLE1BQU0sWUFBWSxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUdqRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8scUJBQXNCLFNBQVEsWUFBWTtJQUMzRCxNQUFNLENBQVM7SUFFZixLQUFLLENBQUMsSUFBSTtRQUNOLElBQUksSUFBSSxDQUFDLEdBQUcsWUFBWSxNQUFNLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUE7UUFDeEUsQ0FBQztRQUNELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQy9FLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxFQUFFO1FBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBRWxDLDBDQUEwQztRQUMxQyxPQUFPLElBQUksQ0FBQTtJQUNmLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFnQixDQUNsRCxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDcEIsS0FBSyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBZ0IsQ0FBQyxDQUFDLENBQUE7SUFDdkUsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxPQUFPO1FBQ1QsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDbkIsS0FBSyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQzdFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBTyxDQUFFLFNBQXdCLEVBQUUsU0FBNkIsRUFBRTtRQUM5RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNwQixLQUFLLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUNoQyxJQUFJLENBQUMsTUFBZ0IsRUFDckIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FDdEMsQ0FDSixDQUFBO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXLENBQUUsU0FBd0IsRUFBRSxTQUE2QixFQUFFO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3BCLEtBQUssSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQ2hDLElBQUksQ0FBQyxNQUFnQixFQUNyQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FDeEIsQ0FDSixDQUFBO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBRSxXQUFtQixFQUFFLFNBQWtCLElBQUk7UUFDOUMsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDekUsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDN0YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3BCLEtBQUssSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQ2hDLElBQUksQ0FBQyxNQUFnQixFQUNyQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FDMUIsQ0FDSixDQUFBO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBRSxXQUFtQjtRQUMxQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ3pDLENBQUM7Q0FDSiJ9