testplane 0.1.0 → 0.1.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 (136) hide show
  1. package/README.md +8 -6
  2. package/build/package.json +26 -4
  3. package/build/src/browser/browser.d.ts +3 -1
  4. package/build/src/browser/browser.js +12 -6
  5. package/build/src/browser/browser.js.map +1 -1
  6. package/build/src/browser/existing-browser.js +5 -1
  7. package/build/src/browser/existing-browser.js.map +1 -1
  8. package/build/src/browser/new-browser.d.ts +4 -4
  9. package/build/src/browser/screen-shooter/viewport/coord-validator/index.d.ts +2 -1
  10. package/build/src/browser/types.d.ts +3 -0
  11. package/build/src/browser-pool/basic-pool.d.ts +2 -1
  12. package/build/src/browser-pool/caching-pool.d.ts +2 -1
  13. package/build/src/browser-pool/limited-pool.d.ts +2 -1
  14. package/build/src/browser-pool/limited-use-set.d.ts +2 -1
  15. package/build/src/browser-pool/per-browser-limited-pool.d.ts +2 -1
  16. package/build/src/bundle/index.js +2004 -0
  17. package/build/src/config/defaults.d.ts +2 -1
  18. package/build/src/config/defaults.js +3 -2
  19. package/build/src/config/defaults.js.map +1 -1
  20. package/build/src/config/options.js +25 -0
  21. package/build/src/config/options.js.map +1 -1
  22. package/build/src/config/types.d.ts +7 -1
  23. package/build/src/constants/config.d.ts +2 -0
  24. package/build/src/constants/config.js +2 -0
  25. package/build/src/constants/config.js.map +1 -1
  26. package/build/src/runner/browser-env/index.d.ts +12 -0
  27. package/build/src/runner/browser-env/index.js +34 -0
  28. package/build/src/runner/browser-env/index.js.map +1 -0
  29. package/build/src/runner/browser-env/vite/browser-modules/constants.d.ts +17 -0
  30. package/build/src/runner/browser-env/vite/browser-modules/constants.js +20 -0
  31. package/build/src/runner/browser-env/vite/browser-modules/constants.js.map +1 -0
  32. package/build/src/runner/browser-env/vite/browser-modules/driver.d.ts +3 -0
  33. package/build/src/runner/browser-env/vite/browser-modules/driver.js +113 -0
  34. package/build/src/runner/browser-env/vite/browser-modules/driver.js.map +1 -0
  35. package/build/src/runner/browser-env/vite/browser-modules/errors/base.d.ts +6 -0
  36. package/build/src/runner/browser-env/vite/browser-modules/errors/base.js +10 -0
  37. package/build/src/runner/browser-env/vite/browser-modules/errors/base.js.map +1 -0
  38. package/build/src/runner/browser-env/vite/browser-modules/errors/browser.d.ts +12 -0
  39. package/build/src/runner/browser-env/vite/browser-modules/errors/browser.js +14 -0
  40. package/build/src/runner/browser-env/vite/browser-modules/errors/browser.js.map +1 -0
  41. package/build/src/runner/browser-env/vite/browser-modules/errors/index.d.ts +10 -0
  42. package/build/src/runner/browser-env/vite/browser-modules/errors/index.js +44 -0
  43. package/build/src/runner/browser-env/vite/browser-modules/errors/index.js.map +1 -0
  44. package/build/src/runner/browser-env/vite/browser-modules/errors/load-page.d.ts +10 -0
  45. package/build/src/runner/browser-env/vite/browser-modules/errors/load-page.js +10 -0
  46. package/build/src/runner/browser-env/vite/browser-modules/errors/load-page.js.map +1 -0
  47. package/build/src/runner/browser-env/vite/browser-modules/errors/vite-runtime.d.ts +17 -0
  48. package/build/src/runner/browser-env/vite/browser-modules/errors/vite-runtime.js +17 -0
  49. package/build/src/runner/browser-env/vite/browser-modules/errors/vite-runtime.js.map +1 -0
  50. package/build/src/runner/browser-env/vite/browser-modules/expect.d.ts +2 -0
  51. package/build/src/runner/browser-env/vite/browser-modules/expect.js +84 -0
  52. package/build/src/runner/browser-env/vite/browser-modules/expect.js.map +1 -0
  53. package/build/src/runner/browser-env/vite/browser-modules/globals.d.ts +1 -0
  54. package/build/src/runner/browser-env/vite/browser-modules/globals.js +63 -0
  55. package/build/src/runner/browser-env/vite/browser-modules/globals.js.map +1 -0
  56. package/build/src/runner/browser-env/vite/browser-modules/index.d.ts +1 -0
  57. package/build/src/runner/browser-env/vite/browser-modules/index.js +13 -0
  58. package/build/src/runner/browser-env/vite/browser-modules/index.js.map +1 -0
  59. package/build/src/runner/browser-env/vite/browser-modules/mocha/events.d.ts +6 -0
  60. package/build/src/runner/browser-env/vite/browser-modules/mocha/events.js +7 -0
  61. package/build/src/runner/browser-env/vite/browser-modules/mocha/events.js.map +1 -0
  62. package/build/src/runner/browser-env/vite/browser-modules/mocha/index.d.ts +10 -0
  63. package/build/src/runner/browser-env/vite/browser-modules/mocha/index.js +63 -0
  64. package/build/src/runner/browser-env/vite/browser-modules/mocha/index.js.map +1 -0
  65. package/build/src/runner/browser-env/vite/browser-modules/mocha/parser.d.ts +10 -0
  66. package/build/src/runner/browser-env/vite/browser-modules/mocha/parser.js +21 -0
  67. package/build/src/runner/browser-env/vite/browser-modules/mocha/parser.js.map +1 -0
  68. package/build/src/runner/browser-env/vite/browser-modules/tsconfig.tsbuildinfo +1 -0
  69. package/build/src/runner/browser-env/vite/browser-modules/types.d.ts +92 -0
  70. package/build/src/runner/browser-env/vite/browser-modules/types.js +16 -0
  71. package/build/src/runner/browser-env/vite/browser-modules/types.js.map +1 -0
  72. package/build/src/runner/browser-env/vite/browser-modules/utils/console.d.ts +1 -0
  73. package/build/src/runner/browser-env/vite/browser-modules/utils/console.js +13 -0
  74. package/build/src/runner/browser-env/vite/browser-modules/utils/console.js.map +1 -0
  75. package/build/src/runner/browser-env/vite/browser-modules/utils/index.d.ts +2 -0
  76. package/build/src/runner/browser-env/vite/browser-modules/utils/index.js +3 -0
  77. package/build/src/runner/browser-env/vite/browser-modules/utils/index.js.map +1 -0
  78. package/build/src/runner/browser-env/vite/browser-modules/utils/selector.d.ts +1 -0
  79. package/build/src/runner/browser-env/vite/browser-modules/utils/selector.js +4 -0
  80. package/build/src/runner/browser-env/vite/browser-modules/utils/selector.js.map +1 -0
  81. package/build/src/runner/browser-env/vite/constants.d.ts +13 -0
  82. package/build/src/runner/browser-env/vite/constants.js +18 -0
  83. package/build/src/runner/browser-env/vite/constants.js.map +1 -0
  84. package/build/src/runner/browser-env/vite/plugins/generate-index-html.d.ts +2 -0
  85. package/build/src/runner/browser-env/vite/plugins/generate-index-html.js +148 -0
  86. package/build/src/runner/browser-env/vite/plugins/generate-index-html.js.map +1 -0
  87. package/build/src/runner/browser-env/vite/server.d.ts +14 -0
  88. package/build/src/runner/browser-env/vite/server.js +117 -0
  89. package/build/src/runner/browser-env/vite/server.js.map +1 -0
  90. package/build/src/runner/browser-env/vite/socket.d.ts +2 -0
  91. package/build/src/runner/browser-env/vite/socket.js +106 -0
  92. package/build/src/runner/browser-env/vite/socket.js.map +1 -0
  93. package/build/src/runner/browser-env/vite/types.d.ts +16 -0
  94. package/build/src/runner/browser-env/vite/types.js +13 -0
  95. package/build/src/runner/browser-env/vite/types.js.map +1 -0
  96. package/build/src/runner/browser-env/vite/utils.d.ts +7 -0
  97. package/build/src/runner/browser-env/vite/utils.js +26 -0
  98. package/build/src/runner/browser-env/vite/utils.js.map +1 -0
  99. package/build/src/test-reader/test-parser.js +3 -0
  100. package/build/src/test-reader/test-parser.js.map +1 -1
  101. package/build/src/test-reader/test-transformer.d.ts +2 -0
  102. package/build/src/test-reader/test-transformer.js +8 -0
  103. package/build/src/test-reader/test-transformer.js.map +1 -0
  104. package/build/src/testplane.d.ts +3 -2
  105. package/build/src/testplane.js +3 -1
  106. package/build/src/testplane.js.map +1 -1
  107. package/build/src/types/index.d.ts +7 -2
  108. package/build/src/types/index.js.map +1 -1
  109. package/build/src/utils/config.d.ts +2 -0
  110. package/build/src/utils/config.js +9 -0
  111. package/build/src/utils/config.js.map +1 -0
  112. package/build/src/worker/browser-env/runner/test-runner/constants.d.ts +10 -0
  113. package/build/src/worker/browser-env/runner/test-runner/constants.js +14 -0
  114. package/build/src/worker/browser-env/runner/test-runner/constants.js.map +1 -0
  115. package/build/src/worker/browser-env/runner/test-runner/execution-thread.d.ts +3 -0
  116. package/build/src/worker/browser-env/runner/test-runner/execution-thread.js +40 -0
  117. package/build/src/worker/browser-env/runner/test-runner/execution-thread.js.map +1 -0
  118. package/build/src/worker/browser-env/runner/test-runner/index.d.ts +16 -0
  119. package/build/src/worker/browser-env/runner/test-runner/index.js +178 -0
  120. package/build/src/worker/browser-env/runner/test-runner/index.js.map +1 -0
  121. package/build/src/worker/browser-env/runner/test-runner/types.d.ts +8 -0
  122. package/build/src/worker/browser-env/runner/test-runner/types.js +11 -0
  123. package/build/src/worker/browser-env/runner/test-runner/types.js.map +1 -0
  124. package/build/src/worker/runner/index.js +9 -2
  125. package/build/src/worker/runner/index.js.map +1 -1
  126. package/build/src/worker/runner/test-runner/index.d.ts +21 -3
  127. package/build/src/worker/runner/test-runner/index.js +21 -9
  128. package/build/src/worker/runner/test-runner/index.js.map +1 -1
  129. package/build/src/worker/runner/test-runner/runner.d.ts +5 -0
  130. package/build/src/worker/runner/test-runner/runner.js +10 -0
  131. package/build/src/worker/runner/test-runner/runner.js.map +1 -0
  132. package/build/src/worker/runner/test-runner/types.d.ts +23 -0
  133. package/build/src/worker/runner/test-runner/types.js +3 -0
  134. package/build/src/worker/runner/test-runner/types.js.map +1 -0
  135. package/package.json +26 -4
  136. package/typings/global.d.ts +6 -0
@@ -1,6 +1,7 @@
1
1
  /// <reference types="mocha" />
2
2
  import { Events } from "../events";
3
- import { MainRunner } from "../runner";
3
+ import { MainRunner as NodejsEnvRunner } from "../runner";
4
+ import { MainRunner as BrowserEnvRunner } from "../runner/browser-env/index";
4
5
  import { TestCollection } from "../test-collection";
5
6
  import type { Test } from "../test-reader/test-object/test";
6
7
  import type { Suite } from "../test-reader/test-object/suite";
@@ -12,6 +13,7 @@ import { SkipController } from "../test-reader/controllers/skip-controller";
12
13
  import { BrowserVersionController } from "../test-reader/controllers/browser-version-controller";
13
14
  import { WorkerProcess } from "../utils/worker-process";
14
15
  import { BaseTestplane } from "../base-testplane";
16
+ import Callstack from "../browser/history/callstack";
15
17
  import { CoordBounds, LooksSameOptions } from "looks-same";
16
18
  export { Suite as RunnerSuite, Test as RunnerTest, Hook as RunnerHook } from "mocha";
17
19
  export type { Browser as WdioBrowser } from "webdriverio";
@@ -143,13 +145,16 @@ export interface AfterFileReadData {
143
145
  export interface BeforeFileReadData extends AfterFileReadData {
144
146
  testParser: TestParserAPI;
145
147
  }
148
+ export interface BrowserHistory {
149
+ runGroup: (callstack: Callstack, name: string, fn: () => unknown | Promise<unknown>) => Promise<unknown>;
150
+ }
146
151
  export type SyncSessionEventCallback = (browser: WebdriverIO.Browser, browserInfo: {
147
152
  browserId: string;
148
153
  browserVersion: string;
149
154
  }) => void;
150
155
  export type MasterEventHandler<T extends BaseTestplane> = {
151
156
  (event: Events["INIT"], callback: () => Promise<void> | void): T;
152
- (event: Events["RUNNER_START"], callback: (runner: MainRunner) => Promise<void> | void): T;
157
+ (event: Events["RUNNER_START"], callback: (runner: NodejsEnvRunner | BrowserEnvRunner) => Promise<void> | void): T;
153
158
  (event: Events["RUNNER_END"], callback: (result: StatsResult) => Promise<void> | void): T;
154
159
  (event: Events["SESSION_START"], callback: AsyncSessionEventCallback): T;
155
160
  (event: Events["SESSION_END"], callback: AsyncSessionEventCallback): T;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;AAeA,+BAAqF;AAA5E,oGAAA,KAAK,OAAe;AAAE,mGAAA,IAAI,OAAc;AAAE,mGAAA,IAAI,OAAc"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;AAiBA,+BAAqF;AAA5E,oGAAA,KAAK,OAAe;AAAE,mGAAA,IAAI,OAAc;AAAE,mGAAA,IAAI,OAAc"}
@@ -0,0 +1,2 @@
1
+ import type { CommonConfig } from "../config/types";
2
+ export declare const isRunInNodeJsEnv: (config: CommonConfig) => boolean;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isRunInNodeJsEnv = void 0;
4
+ const config_1 = require("../constants/config");
5
+ const isRunInNodeJsEnv = (config) => {
6
+ return config.system.testRunEnv === config_1.NODEJS_TEST_RUN_ENV;
7
+ };
8
+ exports.isRunInNodeJsEnv = isRunInNodeJsEnv;
9
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":";;;AAAA,gDAA0D;AAGnD,MAAM,gBAAgB,GAAG,CAAC,MAAoB,EAAW,EAAE;IAC9D,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,KAAK,4BAAmB,CAAC;AAC5D,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B"}
@@ -0,0 +1,10 @@
1
+ export declare const WORKER_EVENT_PREFIX = "worker";
2
+ export declare const SUPPORTED_ASYMMETRIC_MATCHER: {
3
+ readonly Any: "any";
4
+ readonly Anything: "anything";
5
+ readonly ArrayContaining: "arrayContaining";
6
+ readonly ObjectContaining: "objectContaining";
7
+ readonly StringContaining: "stringContaining";
8
+ readonly StringMatching: "stringMatching";
9
+ readonly CloseTo: "closeTo";
10
+ };
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SUPPORTED_ASYMMETRIC_MATCHER = exports.WORKER_EVENT_PREFIX = void 0;
4
+ exports.WORKER_EVENT_PREFIX = "worker";
5
+ exports.SUPPORTED_ASYMMETRIC_MATCHER = {
6
+ Any: "any",
7
+ Anything: "anything",
8
+ ArrayContaining: "arrayContaining",
9
+ ObjectContaining: "objectContaining",
10
+ StringContaining: "stringContaining",
11
+ StringMatching: "stringMatching",
12
+ CloseTo: "closeTo",
13
+ };
14
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../src/worker/browser-env/runner/test-runner/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,mBAAmB,GAAG,QAAQ,CAAC;AAE/B,QAAA,4BAA4B,GAAG;IACxC,GAAG,EAAE,KAAK;IACV,QAAQ,EAAE,UAAU;IACpB,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,OAAO,EAAE,SAAS;CACZ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import NodejsEnvExecutionThread from "../../../runner/test-runner/execution-thread";
2
+ import type { WorkerViteSocket } from "./types";
3
+ export declare const wrapExecutionThread: (socket: WorkerViteSocket) => typeof NodejsEnvExecutionThread;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.wrapExecutionThread = void 0;
7
+ const execution_thread_1 = __importDefault(require("../../../runner/test-runner/execution-thread"));
8
+ const constants_1 = require("../../../../runner/browser-env/vite/constants");
9
+ const types_1 = require("./types");
10
+ const wrapExecutionThread = (socket) => {
11
+ return class ExecutionThread extends execution_thread_1.default {
12
+ constructor(opts) {
13
+ super(opts);
14
+ this._socket = socket;
15
+ }
16
+ async _call(runnable) {
17
+ runnable.fn = async () => {
18
+ const timeout = runnable.timeout === 0 ? constants_1.SOCKET_MAX_TIMEOUT : runnable.timeout;
19
+ try {
20
+ const [error] = (await this._socket
21
+ .timeout(timeout)
22
+ .emitWithAck(types_1.WorkerEventNames.runRunnable, { fullTitle: runnable.fullTitle() }));
23
+ if (error) {
24
+ throw error;
25
+ }
26
+ }
27
+ catch (err) {
28
+ let error = err;
29
+ if (error.message === constants_1.SOCKET_TIMED_OUT_ERROR) {
30
+ error = new Error(`Didn't receive response from browser on "${types_1.WorkerEventNames.runRunnable}" when executing ${runnable.fullTitle} event in ${timeout}ms`);
31
+ }
32
+ throw error;
33
+ }
34
+ };
35
+ return super._call(runnable);
36
+ }
37
+ };
38
+ };
39
+ exports.wrapExecutionThread = wrapExecutionThread;
40
+ //# sourceMappingURL=execution-thread.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-thread.js","sourceRoot":"","sources":["../../../../../../src/worker/browser-env/runner/test-runner/execution-thread.ts"],"names":[],"mappings":";;;;;;AAAA,oGAAoF;AACpF,6EAA2G;AAE3G,mCAA2C;AAMpC,MAAM,mBAAmB,GAAG,CAAC,MAAwB,EAAmC,EAAE;IAC7F,OAAO,MAAM,eAAgB,SAAQ,0BAAwB;QAGzD,YAAY,IAAmD;YAC3D,KAAK,CAAC,IAAI,CAAC,CAAC;YAHR,YAAO,GAAG,MAAM,CAAC;QAIzB,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,QAAqB;YAC7B,QAAQ,CAAC,EAAE,GAAG,KAAK,IAAmB,EAAE;gBACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,8BAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAE/E,IAAI,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO;yBAC9B,OAAO,CAAC,OAAO,CAAC;yBAChB,WAAW,CAAC,wBAAgB,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAElF,CAAC;oBAEF,IAAI,KAAK,EAAE,CAAC;wBACR,MAAM,KAAK,CAAC;oBAChB,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACX,IAAI,KAAK,GAAG,GAAY,CAAC;oBAEzB,IAAI,KAAK,CAAC,OAAO,KAAK,kCAAsB,EAAE,CAAC;wBAC3C,KAAK,GAAG,IAAI,KAAK,CACb,4CAA4C,wBAAgB,CAAC,WAAW,oBAAoB,QAAQ,CAAC,SAAS,aAAa,OAAO,IAAI,CACzI,CAAC;oBACN,CAAC;oBAED,MAAM,KAAK,CAAC;gBAChB,CAAC;YACL,CAAC,CAAC;YAEF,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;KACJ,CAAC;AACN,CAAC,CAAC;AAtCW,QAAA,mBAAmB,uBAsC9B"}
@@ -0,0 +1,16 @@
1
+ import NodejsEnvTestRunner from "../../../runner/test-runner";
2
+ import type { WorkerTestRunnerRunOpts, WorkerTestRunnerCtorOpts } from "../../../runner/test-runner/types";
3
+ import type { WorkerRunTestResult } from "../../../testplane";
4
+ import type { BrowserHistory } from "../../../../types";
5
+ import type { Browser } from "../../../../browser/types";
6
+ export declare class TestRunner extends NodejsEnvTestRunner {
7
+ private _socket;
8
+ private _runUuid;
9
+ private _runOpts;
10
+ constructor(opts: WorkerTestRunnerCtorOpts);
11
+ run(opts: WorkerTestRunnerRunOpts): Promise<WorkerRunTestResult>;
12
+ _getPreparePageActions(browser: Browser, history: BrowserHistory): (() => Promise<void>)[];
13
+ private _handleRunBrowserCommand;
14
+ private _handleRunExpectMatcher;
15
+ private _openViteUrl;
16
+ }
@@ -0,0 +1,178 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.TestRunner = void 0;
30
+ const node_crypto_1 = __importDefault(require("node:crypto"));
31
+ const urijs_1 = __importDefault(require("urijs"));
32
+ const bluebird_1 = __importDefault(require("bluebird"));
33
+ const lodash_1 = __importDefault(require("lodash"));
34
+ const socket_io_client_1 = require("socket.io-client");
35
+ const test_runner_1 = __importDefault(require("../../../runner/test-runner"));
36
+ const execution_thread_1 = require("./execution-thread");
37
+ const types_1 = require("./types");
38
+ const constants_1 = require("./constants");
39
+ const logger_1 = __importDefault(require("../../../../utils/logger"));
40
+ const types_2 = require("../../../../runner/browser-env/vite/types");
41
+ const prepareData = (data) => {
42
+ return JSON.parse(JSON.stringify(data, Object.getOwnPropertyNames(data)));
43
+ };
44
+ class TestRunner extends test_runner_1.default {
45
+ constructor(opts) {
46
+ super(opts);
47
+ this._runUuid = node_crypto_1.default.randomUUID();
48
+ this._socket = (0, socket_io_client_1.io)(this._config.baseUrl, {
49
+ transports: ["websocket"],
50
+ auth: {
51
+ runUuid: this._runUuid,
52
+ type: constants_1.WORKER_EVENT_PREFIX,
53
+ },
54
+ });
55
+ this._socket.on("connect_error", err => {
56
+ if (!this._socket.active) {
57
+ logger_1.default.warn(`Worker with pid=${process.pid} and runUuid=${this._runUuid} was disconnected from the Vite server:`, err);
58
+ }
59
+ });
60
+ }
61
+ async run(opts) {
62
+ this._runOpts = opts;
63
+ const results = await super.run({ ...opts, ExecutionThreadCls: (0, execution_thread_1.wrapExecutionThread)(this._socket) });
64
+ this._socket.emit(types_1.WorkerEventNames.finalize);
65
+ return results;
66
+ }
67
+ _getPreparePageActions(browser, history) {
68
+ return [
69
+ async () => {
70
+ const { default: expectMatchers } = await Promise.resolve().then(() => __importStar(require("expect-webdriverio/lib/matchers")));
71
+ this._socket.on(types_2.BrowserEventNames.callConsoleMethod, payload => {
72
+ console[payload.method](...(payload.args || []));
73
+ });
74
+ this._socket.on(types_2.BrowserEventNames.runBrowserCommand, this._handleRunBrowserCommand(browser));
75
+ this._socket.on(types_2.BrowserEventNames.runExpectMatcher, this._handleRunExpectMatcher(browser, expectMatchers));
76
+ this._socket.emit(types_1.WorkerEventNames.initialize, {
77
+ file: this._file,
78
+ sessionId: this._runOpts.sessionId,
79
+ capabilities: this._runOpts.sessionCaps,
80
+ requestedCapabilities: this._runOpts.sessionOpts.capabilities,
81
+ customCommands: browser.customCommands,
82
+ config: this._config,
83
+ expectMatchers: Object.getOwnPropertyNames(expectMatchers),
84
+ });
85
+ await history.runGroup(browser.callstackHistory, "openVite", async () => {
86
+ await this._openViteUrl(browser);
87
+ });
88
+ },
89
+ ...super._getPreparePageActions(browser, history),
90
+ ];
91
+ }
92
+ _handleRunBrowserCommand(browser) {
93
+ const { publicAPI: session } = browser;
94
+ return async (payload, cb) => {
95
+ const { name, args } = payload;
96
+ const cmdName = name;
97
+ if (typeof session[cmdName] !== "function") {
98
+ cb([prepareData(new Error(`"browser.${name}" does not exists in browser instance`))]);
99
+ return;
100
+ }
101
+ try {
102
+ const result = await session[cmdName](...args);
103
+ if (lodash_1.default.isError(result)) {
104
+ return cb([prepareData(result)]);
105
+ }
106
+ if (lodash_1.default.isArray(result)) {
107
+ return cb([null, result.map(prepareData)]);
108
+ }
109
+ cb([null, lodash_1.default.isObject(result) ? prepareData(result) : result]);
110
+ }
111
+ catch (err) {
112
+ cb([prepareData(err)]);
113
+ }
114
+ };
115
+ }
116
+ _handleRunExpectMatcher(browser, expectMatchers) {
117
+ const { publicAPI: session } = browser;
118
+ return async (payload, cb) => {
119
+ if (!global.expect) {
120
+ return cb([{ pass: false, message: "Couldn't find expect module" }]);
121
+ }
122
+ const matcher = expectMatchers[payload.name];
123
+ if (!matcher) {
124
+ return cb([{ pass: false, message: `Couldn't find expect matcher with name "${payload.name}"` }]);
125
+ }
126
+ try {
127
+ let context = payload.context || session;
128
+ if (payload.element) {
129
+ if (lodash_1.default.isArray(payload.element)) {
130
+ context = await session.$$(payload.element);
131
+ }
132
+ else if (payload.element.elementId) {
133
+ context = await session.$(payload.element);
134
+ context.selector = payload.element.selector;
135
+ }
136
+ else {
137
+ context = await session.$(payload.element.selector);
138
+ }
139
+ }
140
+ const result = await matcher.apply(payload.scope, [context, ...payload.args.map(transformExpectArg)]);
141
+ cb([{ pass: result.pass, message: result.message() }]);
142
+ }
143
+ catch (err) {
144
+ cb([{ pass: false, message: `Failed to execute expect command "${payload.name}": ${err}` }]);
145
+ }
146
+ };
147
+ }
148
+ async _openViteUrl(browser) {
149
+ const browserInitialize = new bluebird_1.default((resolve, reject) => {
150
+ this._socket.once(types_2.BrowserEventNames.initialize, errors => {
151
+ lodash_1.default.isEmpty(errors) ? resolve() : reject(errors[0]);
152
+ });
153
+ });
154
+ const timeout = this._config.urlHttpTimeout || this._config.httpTimeout;
155
+ const uri = new urijs_1.default(this._config.baseUrl).query({ runUuid: this._runUuid }).toString();
156
+ await Promise.all([
157
+ browserInitialize.timeout(timeout, `Browser didn't connect to the Vite server in ${timeout}ms`),
158
+ browser.publicAPI.url(uri),
159
+ ]);
160
+ }
161
+ }
162
+ exports.TestRunner = TestRunner;
163
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
164
+ function transformExpectArg(arg) {
165
+ if (typeof arg === "object" &&
166
+ "$$typeof" in arg &&
167
+ Object.keys(constants_1.SUPPORTED_ASYMMETRIC_MATCHER).includes(arg.$$typeof)) {
168
+ const matcherKey = constants_1.SUPPORTED_ASYMMETRIC_MATCHER[arg.$$typeof];
169
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
170
+ const matcher = arg.inverse ? global.expect.not[matcherKey] : global.expect[matcherKey];
171
+ if (!matcher) {
172
+ throw new Error(`Matcher "${matcherKey}" is not supported by expect-webdriverio`);
173
+ }
174
+ return matcher(arg.sample);
175
+ }
176
+ return arg;
177
+ }
178
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/worker/browser-env/runner/test-runner/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { Socket } from "socket.io-client";
2
+ import type { BrowserViteEvents, WorkerViteEvents } from "../../../../runner/browser-env/vite/types";
3
+ export declare enum WorkerEventNames {
4
+ initialize = "worker:initialize",
5
+ finalize = "worker:finalize",
6
+ runRunnable = "worker:runRunnable"
7
+ }
8
+ export type WorkerViteSocket = Socket<BrowserViteEvents, WorkerViteEvents>;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkerEventNames = void 0;
4
+ const constants_1 = require("./constants");
5
+ var WorkerEventNames;
6
+ (function (WorkerEventNames) {
7
+ WorkerEventNames["initialize"] = "worker:initialize";
8
+ WorkerEventNames["finalize"] = "worker:finalize";
9
+ WorkerEventNames["runRunnable"] = "worker:runRunnable";
10
+ })(WorkerEventNames || (exports.WorkerEventNames = WorkerEventNames = {}));
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/worker/browser-env/runner/test-runner/types.ts"],"names":[],"mappings":";;;AAAA,2CAAkD;AAKlD,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IACxB,oDAAgD,CAAA;IAChD,gDAA4C,CAAA;IAC5C,sDAAkD,CAAA;AACtD,CAAC,EAJW,gBAAgB,gCAAhB,gBAAgB,QAI3B"}
@@ -4,8 +4,10 @@ const { passthroughEvent } = require("../../events/utils");
4
4
  const { WorkerEvents } = require("../../events");
5
5
  const BrowserPool = require("./browser-pool");
6
6
  const BrowserAgent = require("./browser-agent");
7
- const TestRunner = require("./test-runner");
7
+ const NodejsEnvTestRunner = require("./test-runner");
8
+ const { TestRunner: BrowserEnvTestRunner } = require("../browser-env/runner/test-runner");
8
9
  const CachingTestParser = require("./caching-test-parser");
10
+ const { isRunInNodeJsEnv } = require("../../utils/config");
9
11
  module.exports = class Runner extends AsyncEmitter {
10
12
  static create(config) {
11
13
  return new Runner(config);
@@ -25,7 +27,12 @@ module.exports = class Runner extends AsyncEmitter {
25
27
  const tests = await this._testParser.parse({ file, browserId });
26
28
  const test = tests.find(t => t.fullTitle() === fullTitle);
27
29
  const browserAgent = BrowserAgent.create({ id: browserId, version: browserVersion, pool: this._browserPool });
28
- const runner = TestRunner.create(test, this._config.forBrowser(browserId), browserAgent);
30
+ const runner = (isRunInNodeJsEnv(this._config) ? NodejsEnvTestRunner : BrowserEnvTestRunner).create({
31
+ test,
32
+ file,
33
+ config: this._config.forBrowser(browserId),
34
+ browserAgent,
35
+ });
29
36
  return runner.run({ sessionId, sessionCaps, sessionOpts, state });
30
37
  }
31
38
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/worker/runner/index.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAC/D,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC3D,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AACjD,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAChD,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAC5C,MAAM,iBAAiB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAE3D,MAAM,CAAC,OAAO,GAAG,MAAM,MAAO,SAAQ,YAAY;IAC9C,MAAM,CAAC,MAAM,CAAC,MAAM;QAChB,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,YAAY,MAAM;QACd,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAE3D,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpD,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE;YACrC,YAAY,CAAC,gBAAgB;YAC7B,YAAY,CAAC,eAAe;YAC5B,YAAY,CAAC,gBAAgB;SAChC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE;QACpG,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,SAAS,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC9G,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC;QAEzF,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IACtE,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/worker/runner/index.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAC/D,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC3D,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AACjD,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAChD,MAAM,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AACrD,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,mCAAmC,CAAC,CAAC;AAC1F,MAAM,iBAAiB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAC3D,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAE3D,MAAM,CAAC,OAAO,GAAG,MAAM,MAAO,SAAQ,YAAY;IAC9C,MAAM,CAAC,MAAM,CAAC,MAAM;QAChB,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,YAAY,MAAM;QACd,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAE3D,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpD,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE;YACrC,YAAY,CAAC,gBAAgB;YAC7B,YAAY,CAAC,eAAe;YAC5B,YAAY,CAAC,gBAAgB;SAChC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE;QACpG,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,SAAS,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC9G,MAAM,MAAM,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC;YAChG,IAAI;YACJ,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;YAC1C,YAAY;SACf,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IACtE,CAAC;CACJ,CAAC"}
@@ -1,21 +1,39 @@
1
1
  export = TestRunner;
2
- declare class TestRunner {
2
+ declare class TestRunner extends Runner {
3
3
  static create(...args: any[]): import(".");
4
- constructor(test: any, config: any, browserAgent: any);
4
+ constructor({ test, file, config, browserAgent }: {
5
+ test: any;
6
+ file: any;
7
+ config: any;
8
+ browserAgent: any;
9
+ });
5
10
  _test: any;
11
+ _file: any;
6
12
  _config: any;
7
13
  _browserAgent: any;
8
- run({ sessionId, sessionCaps, sessionOpts, state }: {
14
+ run({ sessionId, sessionCaps, sessionOpts, state, ExecutionThreadCls }: {
9
15
  sessionId: any;
10
16
  sessionCaps: any;
11
17
  sessionOpts: any;
12
18
  state: any;
19
+ ExecutionThreadCls?: {
20
+ new ({ test, browser, testplaneCtx, screenshooter }: {
21
+ test: any;
22
+ browser: any;
23
+ testplaneCtx: any;
24
+ screenshooter: any;
25
+ }): ExecutionThread;
26
+ create(...args: any[]): ExecutionThread;
27
+ } | undefined;
13
28
  }): Promise<{
14
29
  testplaneCtx: any;
15
30
  hermioneCtx: any;
16
31
  meta: any;
17
32
  }>;
33
+ _getPreparePageActions(browser: any, history: any): (() => Promise<void>)[];
18
34
  _resetCursorPosition({ publicAPI: session }: {
19
35
  publicAPI: any;
20
36
  }): Promise<any>;
21
37
  }
38
+ import { Runner } from "./runner";
39
+ import ExecutionThread = require("./execution-thread");
@@ -1,23 +1,26 @@
1
1
  /* global document */
2
2
  "use strict";
3
3
  const _ = require("lodash");
4
+ const { Runner } = require("./runner");
4
5
  const HookRunner = require("./hook-runner");
5
6
  const ExecutionThread = require("./execution-thread");
6
7
  const OneTimeScreenshooter = require("./one-time-screenshooter");
7
8
  const { AssertViewError } = require("../../../browser/commands/assert-view/errors/assert-view-error");
8
9
  const history = require("../../../browser/history");
9
10
  const { SAVE_HISTORY_MODE } = require("../../../constants/config");
10
- module.exports = class TestRunner {
11
+ module.exports = class TestRunner extends Runner {
11
12
  static create(...args) {
12
13
  return new this(...args);
13
14
  }
14
- constructor(test, config, browserAgent) {
15
+ constructor({ test, file, config, browserAgent }) {
16
+ super();
15
17
  this._test = test.clone();
16
18
  this._test.testplaneCtx = _.cloneDeep(test.testplaneCtx);
19
+ this._file = file;
17
20
  this._config = config;
18
21
  this._browserAgent = browserAgent;
19
22
  }
20
- async run({ sessionId, sessionCaps, sessionOpts, state }) {
23
+ async run({ sessionId, sessionCaps, sessionOpts, state, ExecutionThreadCls = ExecutionThread }) {
21
24
  const test = this._test;
22
25
  const testplaneCtx = test.testplaneCtx || {};
23
26
  let browser;
@@ -28,7 +31,7 @@ module.exports = class TestRunner {
28
31
  throw Object.assign(e, { testplaneCtx, hermioneCtx: testplaneCtx });
29
32
  }
30
33
  const screenshooter = OneTimeScreenshooter.create(this._config, browser);
31
- const executionThread = ExecutionThread.create({
34
+ const executionThread = ExecutionThreadCls.create({
32
35
  test,
33
36
  browser,
34
37
  testplaneCtx,
@@ -39,13 +42,12 @@ module.exports = class TestRunner {
39
42
  const { callstackHistory } = browser;
40
43
  let error;
41
44
  try {
42
- const { resetCursor } = browser.config;
43
- const shouldRunBeforeEach = resetCursor || hookRunner.hasBeforeEachHooks();
45
+ const preparePageActions = this._getPreparePageActions(browser, history);
46
+ const shouldRunBeforeEach = preparePageActions.length || hookRunner.hasBeforeEachHooks();
44
47
  if (shouldRunBeforeEach) {
45
48
  await history.runGroup(callstackHistory, "beforeEach", async () => {
46
- if (resetCursor) {
47
- // TODO: make it on browser.init when "actions" method will be implemented in all webdrivers
48
- await history.runGroup(callstackHistory, "resetCursor", () => this._resetCursorPosition(browser));
49
+ for (const action of preparePageActions) {
50
+ await action();
49
51
  }
50
52
  await hookRunner.runBeforeEachHooks();
51
53
  });
@@ -100,6 +102,16 @@ module.exports = class TestRunner {
100
102
  }
101
103
  return results;
102
104
  }
105
+ _getPreparePageActions(browser, history) {
106
+ if (!browser.config.resetCursor) {
107
+ return [];
108
+ }
109
+ const fn = async () => {
110
+ // TODO: make it on browser.init when "actions" method will be implemented in all webdrivers
111
+ await history.runGroup(browser.callstackHistory, "resetCursor", () => this._resetCursorPosition(browser));
112
+ };
113
+ return [fn];
114
+ }
103
115
  async _resetCursorPosition({ publicAPI: session }) {
104
116
  const body = await session.$("body");
105
117
  if (!body) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/worker/runner/test-runner/index.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/worker/runner/test-runner/index.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Constructor } from "type-fest";
2
+ export declare abstract class Runner {
3
+ static create<T>(this: Constructor<T>, ...args: unknown[]): T;
4
+ abstract run(...args: unknown[]): Promise<void>;
5
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Runner = void 0;
4
+ class Runner {
5
+ static create(...args) {
6
+ return new this(...args);
7
+ }
8
+ }
9
+ exports.Runner = Runner;
10
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../../src/worker/runner/test-runner/runner.ts"],"names":[],"mappings":";;;AAEA,MAAsB,MAAM;IACxB,MAAM,CAAC,MAAM,CAA0B,GAAG,IAAe;QACrD,OAAO,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7B,CAAC;CAGJ;AAND,wBAMC"}
@@ -0,0 +1,23 @@
1
+ import ExecutionThread from "./execution-thread";
2
+ import type { WorkerRunTestOpts, WorkerRunTestTestplaneCtx } from "../../testplane";
3
+ import type { Test } from "../../../test-reader/test-object/test";
4
+ import type { BrowserConfig } from "../../../config/browser-config";
5
+ import type BrowserAgent from "../browser-agent";
6
+ import type { Browser } from "../../../browser/types";
7
+ import type OneTimeScreenshooter from "./one-time-screenshooter";
8
+ export interface WorkerTestRunnerRunOpts extends Pick<WorkerRunTestOpts, "sessionId" | "sessionCaps" | "sessionOpts" | "state"> {
9
+ ExecutionThreadCls: typeof ExecutionThread;
10
+ }
11
+ export interface WorkerTestRunnerCtorOpts {
12
+ test: Test;
13
+ file: string;
14
+ config: BrowserConfig;
15
+ browserAgent: BrowserAgent;
16
+ }
17
+ export interface ExecutionThreadCtorOpts {
18
+ test: Test;
19
+ browser: Browser;
20
+ testplaneCtx: WorkerRunTestTestplaneCtx;
21
+ hermioneCtx: WorkerRunTestTestplaneCtx;
22
+ screenshooter: OneTimeScreenshooter;
23
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/worker/runner/test-runner/types.ts"],"names":[],"mappings":""}