testplane 8.32.0 → 8.32.2

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 (61) hide show
  1. package/build/package.json +2 -1
  2. package/build/src/browser/browser.d.ts +5 -0
  3. package/build/src/browser/browser.js +7 -1
  4. package/build/src/browser/browser.js.map +1 -1
  5. package/build/src/browser/cdp/connection.d.ts +52 -0
  6. package/build/src/browser/cdp/connection.js +413 -0
  7. package/build/src/browser/cdp/connection.js.map +1 -0
  8. package/build/src/browser/cdp/constants.d.ts +16 -0
  9. package/build/src/browser/cdp/constants.js +20 -0
  10. package/build/src/browser/cdp/constants.js.map +1 -0
  11. package/build/src/browser/cdp/debug.d.ts +2 -0
  12. package/build/src/browser/cdp/debug.js +9 -0
  13. package/build/src/browser/cdp/debug.js.map +1 -0
  14. package/build/src/browser/cdp/emitter.d.ts +7 -0
  15. package/build/src/browser/cdp/emitter.js +48 -0
  16. package/build/src/browser/cdp/emitter.js.map +1 -0
  17. package/build/src/browser/cdp/error.d.ts +23 -0
  18. package/build/src/browser/cdp/error.js +41 -0
  19. package/build/src/browser/cdp/error.js.map +1 -0
  20. package/build/src/browser/cdp/index.d.ts +13 -0
  21. package/build/src/browser/cdp/index.js +37 -0
  22. package/build/src/browser/cdp/index.js.map +1 -0
  23. package/build/src/browser/cdp/profiler.d.ts +60 -0
  24. package/build/src/browser/cdp/profiler.js +42 -0
  25. package/build/src/browser/cdp/profiler.js.map +1 -0
  26. package/build/src/browser/cdp/target.d.ts +75 -0
  27. package/build/src/browser/cdp/target.js +51 -0
  28. package/build/src/browser/cdp/target.js.map +1 -0
  29. package/build/src/browser/cdp/types.d.ts +124 -0
  30. package/build/src/browser/cdp/types.js +3 -0
  31. package/build/src/browser/cdp/types.js.map +1 -0
  32. package/build/src/browser/cdp/utils.d.ts +7 -0
  33. package/build/src/browser/cdp/utils.js +23 -0
  34. package/build/src/browser/cdp/utils.js.map +1 -0
  35. package/build/src/browser/cdp/ws-endpoint.d.ts +2 -0
  36. package/build/src/browser/cdp/ws-endpoint.js +70 -0
  37. package/build/src/browser/cdp/ws-endpoint.js.map +1 -0
  38. package/build/src/browser/existing-browser.d.ts +4 -0
  39. package/build/src/browser/existing-browser.js +54 -11
  40. package/build/src/browser/existing-browser.js.map +1 -1
  41. package/build/src/browser/history/async-local-storage.d.ts +5 -0
  42. package/build/src/browser/history/async-local-storage.js +14 -0
  43. package/build/src/browser/history/async-local-storage.js.map +1 -0
  44. package/build/src/browser/history/callstack.d.ts +0 -4
  45. package/build/src/browser/history/callstack.js +0 -8
  46. package/build/src/browser/history/callstack.js.map +1 -1
  47. package/build/src/browser/history/index.d.ts +11 -5
  48. package/build/src/browser/history/index.js +68 -54
  49. package/build/src/browser/history/index.js.map +1 -1
  50. package/build/src/browser/history/rrweb.js +1 -3
  51. package/build/src/browser/history/rrweb.js.map +1 -1
  52. package/build/src/runner/browser-env/vite/browser-modules/tsconfig.tsbuildinfo +1 -1
  53. package/build/src/test-reader/index.js +4 -4
  54. package/build/src/test-reader/index.js.map +1 -1
  55. package/build/src/test-reader/test-parser.js +4 -1
  56. package/build/src/test-reader/test-parser.js.map +1 -1
  57. package/build/src/worker/browser-env/runner/test-runner/index.js +1 -0
  58. package/build/src/worker/browser-env/runner/test-runner/index.js.map +1 -1
  59. package/build/src/worker/runner/test-runner/index.js +11 -0
  60. package/build/src/worker/runner/test-runner/index.js.map +1 -1
  61. package/package.json +2 -1
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.getWsEndpoint = void 0;
27
+ const debug_1 = require("./debug");
28
+ const endpointsCache = new WeakMap();
29
+ const getWsEndpoint = async (browser) => {
30
+ const cachedEndpoint = endpointsCache.get(browser);
31
+ if (cachedEndpoint) {
32
+ return cachedEndpoint;
33
+ }
34
+ const session = browser.publicAPI;
35
+ const caps = session.capabilities;
36
+ const chromeOptions = caps["goog:chromeOptions"];
37
+ // Priority 1: "browserWSEndpoint"
38
+ if ("browserWSEndpoint" in browser.config && browser.config.browserWSEndpoint && session.sessionId) {
39
+ const urljoin = await Promise.resolve().then(() => __importStar(require("url-join"))).then(mod => mod.default);
40
+ return urljoin(browser.config.browserWSEndpoint, session.sessionId);
41
+ }
42
+ // Priority 2: "se:cdp" capability
43
+ if (caps["se:cdp"]) {
44
+ return caps["se:cdp"];
45
+ }
46
+ // Priority 3: chrome debugger address
47
+ if (chromeOptions && chromeOptions.debuggerAddress) {
48
+ const versionUrl = `http://${chromeOptions.debuggerAddress}/json/version`;
49
+ try {
50
+ const cdpResponse = await fetch(versionUrl).then(res => res.json());
51
+ if (cdpResponse && cdpResponse.webSocketDebuggerUrl) {
52
+ return cdpResponse.webSocketDebuggerUrl;
53
+ }
54
+ }
55
+ catch (err) {
56
+ (0, debug_1.debugCdp)(`Couldn't fetch chrome devtools debugger address at "${versionUrl}": ${err}`);
57
+ return null;
58
+ }
59
+ }
60
+ // Priority 4: selenium grid
61
+ if (session.sessionId && session.options) {
62
+ const hostname = session.options.hostname || "localhost";
63
+ const port = session.options.port || 4444;
64
+ const sessionId = session.sessionId;
65
+ return `ws://${hostname}:${port}/session/${sessionId}/se/cdp`;
66
+ }
67
+ return null;
68
+ };
69
+ exports.getWsEndpoint = getWsEndpoint;
70
+ //# sourceMappingURL=ws-endpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws-endpoint.js","sourceRoot":"","sources":["../../../../src/browser/cdp/ws-endpoint.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAmC;AAGnC,MAAM,cAAc,GAAG,IAAI,OAAO,EAAmB,CAAC;AAE/C,MAAM,aAAa,GAAG,KAAK,EAAE,OAAgB,EAA0B,EAAE;IAC5E,MAAM,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEnD,IAAI,cAAc,EAAE,CAAC;QACjB,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;IAClC,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAEjD,kCAAkC;IAClC,IAAI,mBAAmB,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,iBAAiB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACjG,MAAM,OAAO,GAAG,MAAM,kDAAO,UAAU,IAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,iBAA2B,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAClF,CAAC;IAED,kCAAkC;IAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAED,sCAAsC;IACtC,IAAI,aAAa,IAAI,aAAa,CAAC,eAAe,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,UAAU,aAAa,CAAC,eAAe,eAAe,CAAC;QAC1E,IAAI,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACpE,IAAI,WAAW,IAAI,WAAW,CAAC,oBAAoB,EAAE,CAAC;gBAClD,OAAO,WAAW,CAAC,oBAAoB,CAAC;YAC5C,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAA,gBAAQ,EAAC,uDAAuD,UAAU,MAAM,GAAG,EAAE,CAAC,CAAC;YACvF,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED,4BAA4B;IAC5B,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC;QACzD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;QAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAEpC,OAAO,QAAQ,QAAQ,IAAI,IAAI,YAAY,SAAS,SAAS,CAAC;IAClE,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AA9CW,QAAA,aAAa,iBA8CxB"}
@@ -5,6 +5,7 @@ import { Config } from "../config";
5
5
  import { Image, Rect } from "../image";
6
6
  import type { CalibrationResult, Calibrator } from "./calibrator";
7
7
  import type { SessionOptions } from "./types";
8
+ import { CDP } from "./cdp";
8
9
  interface PrepareScreenshotOpts {
9
10
  disableAnimation?: boolean;
10
11
  }
@@ -18,6 +19,7 @@ export declare class ExistingBrowser extends Browser {
18
19
  protected _meta: Record<string, unknown>;
19
20
  protected _calibration?: CalibrationResult;
20
21
  protected _clientBridge?: ClientBridge;
22
+ protected _cdp: CDP | null;
21
23
  constructor(config: Config, opts: BrowserOpts);
22
24
  init({ sessionId, sessionCaps, sessionOpts }: SessionOptions, calibrator: Calibrator): Promise<this>;
23
25
  markAsBroken(): void;
@@ -39,6 +41,8 @@ export declare class ExistingBrowser extends Browser {
39
41
  protected _addMetaAccessCommands(session: WebdriverIO.Browser): void;
40
42
  protected _decorateUrlMethod(session: WebdriverIO.Browser): void;
41
43
  protected _resolveUrl(uri: string): string;
44
+ protected _performBidiIsolation(sessionOpts: SessionOptions["sessionOpts"]): Promise<void>;
45
+ protected _performCdpIsolation(sessionOpts: SessionOptions["sessionOpts"]): Promise<void>;
42
46
  protected _performIsolation({ sessionCaps, sessionOpts, }: Pick<SessionOptions, "sessionCaps" | "sessionOpts">): Promise<void>;
43
47
  protected _prepareSession(): Promise<void>;
44
48
  protected _setOrientation(orientation: string | null): Promise<void>;
@@ -43,8 +43,10 @@ const browser_3 = require("../utils/browser");
43
43
  const config_2 = require("../utils/config");
44
44
  const help_1 = require("../constants/help");
45
45
  const history_1 = require("./history");
46
+ const cdp_1 = require("./cdp");
46
47
  const OPTIONAL_SESSION_OPTS = ["transformRequest", "transformResponse"];
47
48
  const BROWSER_SESSION_HINT = "browser session";
49
+ const CDP_CONNECTION_HINT = "cdp connection";
48
50
  const CLIENT_BRIDGE_HINT = "client bridge";
49
51
  function ensure(value, hint) {
50
52
  if (!value) {
@@ -58,20 +60,25 @@ const isClientBridgeErrorData = (data) => {
58
60
  class ExistingBrowser extends browser_1.Browser {
59
61
  constructor(config, opts) {
60
62
  super(config, opts);
63
+ this._cdp = null;
61
64
  this._camera = camera_1.Camera.create(this._config.screenshotMode, () => this._takeScreenshot());
62
65
  this._meta = this._initMeta();
63
66
  }
64
67
  async init({ sessionId, sessionCaps, sessionOpts }, calibrator) {
65
68
  this._session = await this._attachSession({ sessionId, sessionCaps, sessionOpts });
69
+ const cdpPromise = cdp_1.CDP.create(this).then(cdp => {
70
+ this._cdp = cdp;
71
+ });
66
72
  if (!(0, config_2.isRunInNodeJsEnv)(this._config)) {
67
73
  this._startCollectingCustomCommands();
68
74
  }
69
- const isolationPromise = this._performIsolation({ sessionCaps, sessionOpts });
75
+ const isolationPromise = cdpPromise.then(() => this._performIsolation({ sessionCaps, sessionOpts }));
70
76
  this._extendStacktrace();
71
77
  this._addSteps();
72
78
  this._addHistory();
73
79
  await history.runGroup({
74
80
  session: this._session,
81
+ snapshotsPromiseRef: this._snapshotsPromiseRef,
75
82
  callstack: this._callstackHistory,
76
83
  config: this._config,
77
84
  }, "testplane: init browser", async () => {
@@ -98,6 +105,7 @@ class ExistingBrowser extends browser_1.Browser {
98
105
  this._stubCommands();
99
106
  }
100
107
  quit() {
108
+ this._cdp?.close();
101
109
  this._meta = this._initMeta();
102
110
  }
103
111
  async prepareScreenshot(selectors, opts = {}) {
@@ -251,17 +259,8 @@ class ExistingBrowser extends browser_1.Browser {
251
259
  _resolveUrl(uri) {
252
260
  return this._config.baseUrl ? url_1.default.resolve(this._config.baseUrl, uri) : uri;
253
261
  }
254
- async _performIsolation({ sessionCaps, sessionOpts, }) {
262
+ async _performBidiIsolation(sessionOpts) {
255
263
  ensure(this._session, BROWSER_SESSION_HINT);
256
- if (!this._config.isolation) {
257
- return;
258
- }
259
- const { browserName, browserVersion = "", version = "", } = sessionCaps || {};
260
- if (!(0, browser_3.isSupportIsolation)(browserName, browserVersion)) {
261
- logger.warn(`WARN: test isolation works only with chrome@${browser_2.MIN_CHROME_VERSION_SUPPORT_ISOLATION} and higher, ` +
262
- `but got ${browserName}@${browserVersion || version}`);
263
- return;
264
- }
265
264
  const puppeteer = await this._session.getPuppeteer();
266
265
  const browserCtxs = puppeteer.browserContexts();
267
266
  const incognitoCtx = await puppeteer.createIncognitoBrowserContext();
@@ -272,6 +271,9 @@ class ExistingBrowser extends browser_1.Browser {
272
271
  const incognitoWindowId = windowIds.find(id => id.includes(page.target()._targetId));
273
272
  await this._session.switchToWindow(incognitoWindowId);
274
273
  }
274
+ if (this._session.isBidi) {
275
+ return;
276
+ }
275
277
  for (const ctx of browserCtxs) {
276
278
  if (ctx.isIncognito()) {
277
279
  await ctx.close();
@@ -282,6 +284,47 @@ class ExistingBrowser extends browser_1.Browser {
282
284
  }
283
285
  }
284
286
  }
287
+ async _performCdpIsolation(sessionOpts) {
288
+ ensure(this._session, BROWSER_SESSION_HINT);
289
+ ensure(this._cdp, CDP_CONNECTION_HINT);
290
+ const cdpTarget = this._cdp.target;
291
+ const [browserContextIds, currentTargets] = await Promise.all([
292
+ cdpTarget.getBrowserContexts().then(res => res.browserContextIds),
293
+ cdpTarget.getTargets().then(res => res.targetInfos),
294
+ ]);
295
+ const browserContextId = await cdpTarget.createBrowserContext().then(res => res.browserContextId);
296
+ const incognitoWindowId = await cdpTarget.createTarget({ browserContextId }).then(res => res.targetId);
297
+ if (sessionOpts?.automationProtocol === config_1.WEBDRIVER_PROTOCOL) {
298
+ const windowIds = await this._session.getWindowHandles();
299
+ await this._session.switchToWindow(windowIds.find(id => id.includes(incognitoWindowId)));
300
+ }
301
+ await Promise.all([
302
+ cdpTarget.activateTarget(incognitoWindowId),
303
+ ...browserContextIds.map(contextId => cdpTarget.disposeBrowserContext(contextId)),
304
+ ...currentTargets.map(target => cdpTarget.closeTarget(target.targetId).catch(() => { })),
305
+ ]);
306
+ }
307
+ async _performIsolation({ sessionCaps, sessionOpts, }) {
308
+ ensure(this._session, BROWSER_SESSION_HINT);
309
+ if (!this._config.isolation) {
310
+ return;
311
+ }
312
+ const { browserName, browserVersion = "", version = "", } = sessionCaps || {};
313
+ if (!(0, browser_3.isSupportIsolation)(browserName, browserVersion)) {
314
+ logger.warn(`WARN: test isolation works only with chrome@${browser_2.MIN_CHROME_VERSION_SUPPORT_ISOLATION} and higher, ` +
315
+ `but got ${browserName}@${browserVersion || version}`);
316
+ return;
317
+ }
318
+ if (this._session.isBidi) {
319
+ return this._performBidiIsolation(sessionOpts);
320
+ }
321
+ else if (this._cdp) {
322
+ return this._performCdpIsolation(sessionOpts);
323
+ }
324
+ else {
325
+ logger.warn("Unable to get CDP endpoint, skip performing isolation");
326
+ }
327
+ }
285
328
  async _prepareSession() {
286
329
  await this._setOrientation(this.config.orientation);
287
330
  await this._setWindowSize(this.config.windowSize);
@@ -1 +1 @@
1
- {"version":3,"file":"existing-browser.js","sourceRoot":"","sources":["../../../src/browser/existing-browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"existing-browser.js","sourceRoot":"","sources":["../../../src/browser/existing-browser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export interface HistoryContext {
2
+ shouldBypassHistory: boolean;
3
+ }
4
+ export declare const runWithHistoryContext: (contextData: HistoryContext, fn: () => unknown) => unknown;
5
+ export declare const getHistoryContext: () => HistoryContext | undefined;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getHistoryContext = exports.runWithHistoryContext = void 0;
4
+ const async_hooks_1 = require("async_hooks");
5
+ const historyContext = new async_hooks_1.AsyncLocalStorage();
6
+ const runWithHistoryContext = (contextData, fn) => {
7
+ return historyContext.run(contextData, fn);
8
+ };
9
+ exports.runWithHistoryContext = runWithHistoryContext;
10
+ const getHistoryContext = () => {
11
+ return historyContext.getStore();
12
+ };
13
+ exports.getHistoryContext = getHistoryContext;
14
+ //# sourceMappingURL=async-local-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-local-storage.js","sourceRoot":"","sources":["../../../../src/browser/history/async-local-storage.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;AAMhD,MAAM,cAAc,GAAG,IAAI,+BAAiB,EAAkB,CAAC;AAExD,MAAM,qBAAqB,GAAG,CAAC,WAA2B,EAAE,EAAiB,EAAW,EAAE;IAC7F,OAAO,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC;AAEK,MAAM,iBAAiB,GAAG,GAA+B,EAAE;IAC9D,OAAO,cAAc,CAAC,QAAQ,EAAE,CAAC;AACrC,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B"}
@@ -2,11 +2,7 @@ import { TestStepKey, TestStep } from "../../types";
2
2
  export declare class Callstack {
3
3
  private _history;
4
4
  private _stack;
5
- private _isInBypassMode;
6
5
  constructor();
7
- /** Bypass mode indicates that no hooks should be invoked (e.g. `before()` / `after()`). Useful for system commands that should be run bypassing hooks. */
8
- get isInBypassMode(): boolean;
9
- setIsInBypassMode(flag: boolean): void;
10
6
  enter(data: Omit<TestStep, TestStepKey.TimeStart | TestStepKey.Children>): void;
11
7
  leave(key: symbol): void;
12
8
  markError(shouldPropagateFn: (parentNode: TestStep, currentNode: TestStep) => boolean): void;
@@ -8,17 +8,9 @@ const lodash_1 = __importDefault(require("lodash"));
8
8
  const types_1 = require("../../types");
9
9
  class Callstack {
10
10
  constructor() {
11
- this._isInBypassMode = false;
12
11
  this._history = [];
13
12
  this._stack = [];
14
13
  }
15
- /** Bypass mode indicates that no hooks should be invoked (e.g. `before()` / `after()`). Useful for system commands that should be run bypassing hooks. */
16
- get isInBypassMode() {
17
- return this._isInBypassMode;
18
- }
19
- setIsInBypassMode(flag) {
20
- this._isInBypassMode = flag;
21
- }
22
14
  enter(data) {
23
15
  this._stack.push({
24
16
  ...data,
@@ -1 +1 @@
1
- {"version":3,"file":"callstack.js","sourceRoot":"","sources":["../../../../src/browser/history/callstack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"callstack.js","sourceRoot":"","sources":["../../../../src/browser/history/callstack.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,uCAAoD;AAEpD,MAAa,SAAS;IAIlB;QACI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,IAAkE;QACpE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,GAAG,IAAI;YACP,CAAC,mBAAW,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE;YACnC,CAAC,mBAAW,CAAC,QAAQ,CAAC,EAAE,EAAE;SAC7B,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,GAAW;QACb,MAAM,gBAAgB,GAAG,gBAAC,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAW,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;QAC7F,MAAM,kBAAkB,GAAG,gBAAgB,KAAK,CAAC,CAAC,CAAC;QAEnD,IAAI,kBAAkB,EAAE,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,gBAAC,CAAC,KAAK,CAAC,YAAY,CAAa,CAAC;QACtD,MAAM,UAAU,GAAG,gBAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAyB,CAAC;QAC/D,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QAEnD,WAAW,CAAC,mBAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9C,WAAW,CAAC,mBAAW,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,mBAAW,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,mBAAW,CAAC,SAAS,CAAC,CAAC;QAE1G,IAAI,iBAAiB,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACJ,UAAW,CAAC,mBAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IAED,SAAS,CAAC,iBAA2E;QACjF,IAAI,UAAU,GAAoB,IAAI,CAAC;QACvC,IAAI,WAAW,GAAyB,gBAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAE1C,OAAO,cAAc,IAAI,WAAW,EAAE,CAAC;YACnC,WAAW,CAAC,mBAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;YAEzC,UAAU,GAAG,WAAW,CAAC;YACzB,WAAW,GAAG,gBAAC,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxD,cAAc,GAAG,OAAO,CAAC,WAAW,IAAI,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;QACxF,CAAC;IACL,CAAC;IAED,KAAK;QACD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,OAAO;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE9B,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAlED,8BAkEC"}
@@ -1,15 +1,21 @@
1
1
  import { Callstack } from "./callstack";
2
2
  import { BrowserConfig } from "../../config/browser-config";
3
3
  import { TestStep } from "../../types";
4
+ export interface PromiseRef<T = unknown> {
5
+ current: Promise<T>;
6
+ }
4
7
  export declare const shouldPropagateFn: (parentNode: TestStep, currentNode: TestStep) => boolean;
5
8
  interface HooksData {
6
9
  session: WebdriverIO.Browser;
10
+ snapshotsPromiseRef: PromiseRef;
7
11
  callstack: Callstack;
8
12
  config: BrowserConfig;
9
13
  }
10
- export declare const runWithoutHistory: <T>({ callstack }: {
11
- callstack: HooksData["callstack"];
12
- }, fn: () => T) => Promise<T>;
13
- export declare const runGroup: <T>({ session, callstack, config }: HooksData, name: string, fn: () => T) => T;
14
- export declare const initCommandHistory: (session: WebdriverIO.Browser, config: BrowserConfig) => Callstack;
14
+ export declare const runWithoutHistory: <T>(_: unknown, fn: () => T) => Promise<T>;
15
+ export declare const runGroup: <T>({ session, callstack, snapshotsPromiseRef, config }: HooksData, name: string, fn: () => T) => T;
16
+ interface InitHistoryResult {
17
+ callstack: Callstack;
18
+ snapshotsPromiseRef: PromiseRef;
19
+ }
20
+ export declare const initCommandHistory: (session: WebdriverIO.Browser, config: BrowserConfig) => InitHistoryResult;
15
21
  export {};
@@ -22,82 +22,89 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
25
28
  Object.defineProperty(exports, "__esModule", { value: true });
26
29
  exports.initCommandHistory = exports.runGroup = exports.runWithoutHistory = exports.shouldPropagateFn = void 0;
27
- const types_1 = require("util/types");
30
+ const debug_1 = __importDefault(require("debug"));
28
31
  const callstack_1 = require("./callstack");
29
32
  const cmds = __importStar(require("./commands"));
30
33
  const utils_1 = require("./utils");
31
- const types_2 = require("../../types");
34
+ const types_1 = require("../../types");
32
35
  const rrweb_1 = require("./rrweb");
36
+ const async_local_storage_1 = require("./async-local-storage");
37
+ const debug = (0, debug_1.default)("testplane:browser:history");
33
38
  const shouldNotWrapCommand = (commandName) => ["addCommand", "overwriteCommand", "extendOptions", "setMeta", "getMeta", "runStep"].includes(commandName);
34
39
  const shouldPropagateFn = (parentNode, currentNode) => (0, utils_1.isGroup)(parentNode) || (0, utils_1.isGroup)(currentNode);
35
40
  exports.shouldPropagateFn = shouldPropagateFn;
36
41
  const mkHistoryNode = ({ name, args, elementScope, key, overwrite, isGroup }) => {
37
42
  const map = {
38
- [types_2.TestStepKey.Name]: name,
39
- [types_2.TestStepKey.Args]: (0, utils_1.normalizeCommandArgs)(name, args),
40
- [types_2.TestStepKey.Scope]: cmds.createScope(elementScope ?? false),
41
- [types_2.TestStepKey.Key]: key ?? Symbol(),
43
+ [types_1.TestStepKey.Name]: name,
44
+ [types_1.TestStepKey.Args]: (0, utils_1.normalizeCommandArgs)(name, args),
45
+ [types_1.TestStepKey.Scope]: cmds.createScope(elementScope ?? false),
46
+ [types_1.TestStepKey.Key]: key ?? Symbol(),
42
47
  };
43
48
  if (overwrite) {
44
- map[types_2.TestStepKey.IsOverwritten] = Boolean(overwrite);
49
+ map[types_1.TestStepKey.IsOverwritten] = Boolean(overwrite);
45
50
  }
46
51
  if (isGroup) {
47
- map[types_2.TestStepKey.IsGroup] = true;
52
+ map[types_1.TestStepKey.IsGroup] = true;
48
53
  }
49
54
  return map;
50
55
  };
51
- const runWithoutHistory = async ({ callstack }, fn) => {
52
- callstack.setIsInBypassMode(true);
53
- try {
54
- return await fn();
55
- }
56
- finally {
57
- callstack.setIsInBypassMode(false);
58
- }
56
+ const runWithoutHistory = async (_, fn) => {
57
+ return (0, async_local_storage_1.runWithHistoryContext)({ shouldBypassHistory: true }, fn);
59
58
  };
60
59
  exports.runWithoutHistory = runWithoutHistory;
61
- const runWithHistoryHooks = ({ session, callstack, nodeData, fn, config }) => {
60
+ const runWithHistoryHooks = ({ session, callstack, snapshotsPromiseRef, nodeData, fn, config, }) => {
62
61
  nodeData.key = nodeData.key ?? Symbol();
63
- if (callstack.isInBypassMode) {
62
+ if ((0, async_local_storage_1.getHistoryContext)()?.shouldBypassHistory) {
64
63
  return fn();
65
64
  }
66
- let rrwebPromise = null;
67
- try {
68
- const timeTravelMode = config.timeTravel.mode;
69
- const isRetry = (session.executionContext?.ctx?.attempt ?? 0) > 0;
70
- const shouldRecord = (0, utils_1.shouldRecordSnapshots)(timeTravelMode, isRetry);
71
- if (shouldRecord && process.send && session.executionContext?.ctx?.currentTest) {
72
- rrwebPromise = (0, rrweb_1.installRrwebAndCollectEvents)(session, callstack)
73
- .then(rrwebEvents => {
74
- const rrwebEventsFiltered = (0, rrweb_1.filterEvents)(rrwebEvents);
75
- (0, rrweb_1.sendFilteredEvents)(session, rrwebEventsFiltered);
76
- })
77
- .catch(e => {
78
- console.warn("An error occurred during capturing snapshots in browser.", e);
79
- });
80
- }
81
- }
82
- catch (e) {
83
- console.warn("An error occurred during capturing snapshots in browser.", e);
84
- }
85
65
  return (0, utils_1.runWithHooks)({
86
66
  before: () => {
87
67
  callstack.enter(mkHistoryNode(nodeData));
88
68
  },
89
69
  fn: () => {
90
70
  const result = fn();
91
- if (rrwebPromise && (0, types_1.isPromise)(result)) {
92
- return Promise.all([result, rrwebPromise]).then(([fnResult]) => fnResult);
71
+ if (typeof result?.then === "function") {
72
+ try {
73
+ const timeTravelMode = config.timeTravel.mode;
74
+ const isRetry = (session.executionContext?.ctx?.attempt ?? 0) > 0;
75
+ const shouldRecord = (0, utils_1.shouldRecordSnapshots)(timeTravelMode, isRetry);
76
+ const isInterestingStep = !nodeData.name.startsWith("is") &&
77
+ !nodeData.name.startsWith("get") &&
78
+ !nodeData.name.startsWith("$") &&
79
+ !nodeData.name.startsWith("wait");
80
+ if (shouldRecord &&
81
+ process.send &&
82
+ session.executionContext?.ctx?.currentTest &&
83
+ isInterestingStep) {
84
+ const rrwebPromise = (0, rrweb_1.installRrwebAndCollectEvents)(session, callstack)
85
+ ?.then(rrwebEvents => {
86
+ const rrwebEventsFiltered = (0, rrweb_1.filterEvents)(rrwebEvents);
87
+ (0, rrweb_1.sendFilteredEvents)(session, rrwebEventsFiltered);
88
+ })
89
+ .catch(e => {
90
+ debug("An error occurred during capturing snapshots in browser: %O", e);
91
+ });
92
+ snapshotsPromiseRef.current = snapshotsPromiseRef.current.then(() => rrwebPromise);
93
+ }
94
+ }
95
+ catch (e) {
96
+ debug("An error occurred during capturing snapshots in browser: %O", e);
97
+ }
93
98
  }
94
99
  return result;
95
100
  },
96
- after: () => callstack.leave(nodeData.key),
101
+ after: () => {
102
+ return callstack.leave(nodeData.key);
103
+ },
97
104
  error: () => callstack.markError(exports.shouldPropagateFn),
98
105
  });
99
106
  };
100
- const overwriteAddCommand = (session, callstack, config) => {
107
+ const overwriteAddCommand = (session, callstack, snapshotsPromiseRef, config) => {
101
108
  session.overwriteCommand("addCommand", (origCommand, name, wrapper, elementScope) => {
102
109
  if (shouldNotWrapCommand(name)) {
103
110
  return origCommand(name, wrapper, elementScope);
@@ -106,6 +113,7 @@ const overwriteAddCommand = (session, callstack, config) => {
106
113
  return runWithHistoryHooks({
107
114
  session,
108
115
  callstack,
116
+ snapshotsPromiseRef,
109
117
  nodeData: { name, args, elementScope, overwrite: false },
110
118
  fn: () => wrapper.apply(this, args),
111
119
  config,
@@ -114,7 +122,7 @@ const overwriteAddCommand = (session, callstack, config) => {
114
122
  return origCommand(name, decoratedWrapper, elementScope);
115
123
  });
116
124
  };
117
- const overwriteOverwriteCommand = (session, callstack, config) => {
125
+ const overwriteOverwriteCommand = (session, callstack, snapshotsPromiseRef, config) => {
118
126
  session.overwriteCommand("overwriteCommand", (origCommand, name, wrapper, elementScope) => {
119
127
  if (shouldNotWrapCommand(name)) {
120
128
  return origCommand(name, wrapper, elementScope);
@@ -122,6 +130,7 @@ const overwriteOverwriteCommand = (session, callstack, config) => {
122
130
  function decoratedWrapper(origFn, ...args) {
123
131
  return runWithHistoryHooks({
124
132
  session,
133
+ snapshotsPromiseRef,
125
134
  callstack,
126
135
  nodeData: { name, args, elementScope, overwrite: true },
127
136
  fn: () => wrapper.apply(this, [origFn, ...args]),
@@ -132,11 +141,12 @@ const overwriteOverwriteCommand = (session, callstack, config) => {
132
141
  return origCommand(name, decoratedWrapper, elementScope);
133
142
  });
134
143
  };
135
- const overwriteCommands = ({ session, callstack, commands, elementScope, config }) => {
144
+ const overwriteCommands = ({ session, snapshotsPromiseRef, callstack, commands, elementScope, config, }) => {
136
145
  commands.forEach(name => {
137
146
  function decoratedWrapper(origFn, ...args) {
138
147
  return runWithHistoryHooks({
139
148
  session,
149
+ snapshotsPromiseRef,
140
150
  callstack,
141
151
  nodeData: { name, args, elementScope, overwrite: false },
142
152
  fn: () => origFn(...args),
@@ -147,46 +157,50 @@ const overwriteCommands = ({ session, callstack, commands, elementScope, config
147
157
  session.overwriteCommand(name, decoratedWrapper, elementScope);
148
158
  });
149
159
  };
150
- const overwriteBrowserCommands = (session, callstack, config) => overwriteCommands({
160
+ const overwriteBrowserCommands = (session, callstack, snapshotsPromiseRef, config) => overwriteCommands({
151
161
  session,
152
162
  callstack,
163
+ snapshotsPromiseRef,
153
164
  commands: cmds.getBrowserCommands().filter(cmd => !shouldNotWrapCommand(cmd)),
154
165
  elementScope: false,
155
166
  config,
156
167
  });
157
- const overwriteElementCommands = (session, callstack, config) => overwriteCommands({
168
+ const overwriteElementCommands = (session, callstack, snapshotsPromiseRef, config) => overwriteCommands({
158
169
  session,
159
170
  callstack,
171
+ snapshotsPromiseRef,
160
172
  commands: cmds.getElementCommands(),
161
173
  elementScope: true,
162
174
  config,
163
175
  });
164
- const runGroup = ({ session, callstack, config }, name, fn) => {
176
+ const runGroup = ({ session, callstack, snapshotsPromiseRef, config }, name, fn) => {
165
177
  if (!callstack) {
166
178
  return fn();
167
179
  }
168
180
  return runWithHistoryHooks({
169
181
  session,
170
182
  callstack,
183
+ snapshotsPromiseRef,
171
184
  nodeData: { name, args: [], isGroup: true },
172
185
  fn,
173
186
  config,
174
187
  });
175
188
  };
176
189
  exports.runGroup = runGroup;
177
- const overwriteRunStepCommand = (session, callstack, config) => {
190
+ const overwriteRunStepCommand = (session, callstack, snapshotsPromiseRef, config) => {
178
191
  session.overwriteCommand("runStep", (origCommand, stepName, stepCb) => {
179
- return (0, exports.runGroup)({ session, callstack, config }, stepName, () => origCommand(stepName, stepCb));
192
+ return (0, exports.runGroup)({ session, snapshotsPromiseRef, callstack, config }, stepName, () => origCommand(stepName, stepCb));
180
193
  });
181
194
  };
182
195
  const initCommandHistory = (session, config) => {
183
196
  const callstack = new callstack_1.Callstack();
184
- overwriteAddCommand(session, callstack, config);
185
- overwriteBrowserCommands(session, callstack, config);
186
- overwriteElementCommands(session, callstack, config);
187
- overwriteOverwriteCommand(session, callstack, config);
188
- overwriteRunStepCommand(session, callstack, config);
189
- return callstack;
197
+ const snapshotsPromiseRef = { current: Promise.resolve() };
198
+ overwriteAddCommand(session, callstack, snapshotsPromiseRef, config);
199
+ overwriteBrowserCommands(session, callstack, snapshotsPromiseRef, config);
200
+ overwriteElementCommands(session, callstack, snapshotsPromiseRef, config);
201
+ overwriteOverwriteCommand(session, callstack, snapshotsPromiseRef, config);
202
+ overwriteRunStepCommand(session, callstack, snapshotsPromiseRef, config);
203
+ return { callstack, snapshotsPromiseRef };
190
204
  };
191
205
  exports.initCommandHistory = initCommandHistory;
192
206
  //# sourceMappingURL=index.js.map