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
@@ -0,0 +1,148 @@
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.plugin = void 0;
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const node_url_1 = __importDefault(require("node:url"));
9
+ const node_module_1 = require("node:module");
10
+ const debug_1 = __importDefault(require("debug"));
11
+ const modern_node_polyfills_1 = require("modern-node-polyfills");
12
+ const constants_1 = require("../constants");
13
+ const utils_1 = require("../utils");
14
+ const logger_1 = __importDefault(require("../../../../utils/logger"));
15
+ const debug = (0, debug_1.default)("vite:plugin:generateIndexHtml");
16
+ // modules that used only in NodeJS environment and don't need to be compiled
17
+ const MODULES_TO_MOCK = ["import-meta-resolve", "puppeteer-core", "archiver", "@wdio/repl"];
18
+ const POLYFILLS = [...node_module_1.builtinModules, ...node_module_1.builtinModules.map(m => `node:${m}`)];
19
+ const virtualDriverModuleId = "virtual:@testplane/driver";
20
+ const virtualMockModuleId = "virtual:@testplane/mock";
21
+ const virtualModules = {
22
+ driver: {
23
+ id: virtualDriverModuleId,
24
+ resolvedId: `\0${virtualDriverModuleId}`,
25
+ },
26
+ mock: {
27
+ id: virtualMockModuleId,
28
+ resolvedId: `\0${virtualMockModuleId}`,
29
+ },
30
+ };
31
+ const plugin = async () => {
32
+ const mochaPackagePath = await (0, utils_1.getNodeModulePath)({
33
+ moduleName: "mocha",
34
+ parent: node_path_1.default.join("node_modules", "testplane", "node_modules"),
35
+ });
36
+ const mochaModulePath = node_path_1.default.join(node_url_1.default.fileURLToPath(node_path_1.default.dirname(mochaPackagePath)), "mocha.js");
37
+ const dirname = node_url_1.default.fileURLToPath(new URL(".", (0, utils_1.getImportMetaUrl)(__filename)));
38
+ const browserModulesPath = node_path_1.default.resolve(dirname, "..", "browser-modules");
39
+ const browserRunnerModulePath = node_path_1.default.resolve(browserModulesPath, "index.js");
40
+ const globalsModulePath = node_path_1.default.resolve(browserModulesPath, "globals.js");
41
+ const driverModulePath = node_path_1.default.resolve(browserModulesPath, "driver.js");
42
+ const automationProtocolPath = `/@fs${driverModulePath}`;
43
+ return [
44
+ {
45
+ name: "testplane:generateIndexHtml",
46
+ enforce: "pre",
47
+ configureServer(server) {
48
+ return () => {
49
+ server.middlewares.use(async (req, res, next) => {
50
+ debug(`Received request for: ${req.originalUrl}`);
51
+ if (!req.url?.endsWith("index.html") || !req.originalUrl) {
52
+ return next();
53
+ }
54
+ const urlParsed = node_url_1.default.parse(req.originalUrl);
55
+ const urlParamString = new URLSearchParams(urlParsed.query || "");
56
+ try {
57
+ const runUuid = urlParamString.get("runUuid");
58
+ if (!runUuid) {
59
+ throw new Error(`Query parameter "runUuid" must be specified in url: ${req.originalUrl}`);
60
+ }
61
+ const env = constants_1.WORKER_ENV_BY_RUN_UUID.get(runUuid);
62
+ if (!env) {
63
+ throw new Error(`Worker environment is not found by "runUuid=${runUuid}". ` +
64
+ "This is possible if:\n" +
65
+ ' - "runUuid" is not generated by Testplane\n' +
66
+ " - the test has already been completed\n" +
67
+ " - worker was disconnected");
68
+ }
69
+ const template = generateTemplate(env, runUuid);
70
+ res.end(await server.transformIndexHtml(`${req.originalUrl}`, template));
71
+ }
72
+ catch (err) {
73
+ const template = generateErrorTemplate(err);
74
+ logger_1.default.error(`Failed to render template: ${err}`);
75
+ res.end(await server.transformIndexHtml(`${req.originalUrl}`, template));
76
+ }
77
+ return next();
78
+ });
79
+ };
80
+ },
81
+ resolveId: async (id) => {
82
+ if (id === virtualModules.driver.id) {
83
+ return virtualModules.driver.resolvedId;
84
+ }
85
+ if (id.endsWith(constants_1.MODULE_NAMES.browserRunner)) {
86
+ return browserRunnerModulePath;
87
+ }
88
+ if (id.endsWith(constants_1.MODULE_NAMES.globals)) {
89
+ return globalsModulePath;
90
+ }
91
+ if (id.endsWith(constants_1.MODULE_NAMES.mocha)) {
92
+ return mochaModulePath;
93
+ }
94
+ if (POLYFILLS.includes(id)) {
95
+ return (0, modern_node_polyfills_1.polyfillPath)(id.replace("/promises", ""));
96
+ }
97
+ if (MODULES_TO_MOCK.includes(id)) {
98
+ return virtualModules.mock.resolvedId;
99
+ }
100
+ },
101
+ load: (id) => {
102
+ if (id === virtualModules.driver.resolvedId) {
103
+ return `export const automationProtocolPath = ${JSON.stringify(automationProtocolPath)};`;
104
+ }
105
+ if (id === virtualModules.mock.resolvedId) {
106
+ return ["export default () => {};", "export const resolve = () => ''"].join("\n");
107
+ }
108
+ },
109
+ transform(code, id) {
110
+ if (id.includes(".vite/deps/expect.js")) {
111
+ return {
112
+ code: code.replace("var fs = _interopRequireWildcard(require_graceful_fs());", "var fs = {};"),
113
+ };
114
+ }
115
+ return { code };
116
+ },
117
+ },
118
+ ];
119
+ };
120
+ exports.plugin = plugin;
121
+ function generateTemplate(env, runUuid) {
122
+ return `
123
+ <!DOCTYPE html>
124
+ <html>
125
+ <head>
126
+ <title>Testplane Browser Test</title>
127
+ <script type="module">
128
+ window.__testplane__ = ${JSON.stringify({ runUuid, ...env })};
129
+ </script>
130
+ <script type="module" src="${constants_1.MODULE_NAMES.globals}"></script>
131
+ <script type="module" src="${constants_1.MODULE_NAMES.mocha}"></script>
132
+ <script type="module" src="${constants_1.MODULE_NAMES.browserRunner}"></script>
133
+ </head>
134
+ <body></body>
135
+ </html>
136
+ `;
137
+ }
138
+ function generateErrorTemplate(error) {
139
+ return `
140
+ <!DOCTYPE html>
141
+ <html>
142
+ <body>
143
+ <pre>${error.stack}</pre>
144
+ </body>
145
+ </html>
146
+ `;
147
+ }
148
+ //# sourceMappingURL=generate-index-html.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-index-html.js","sourceRoot":"","sources":["../../../../../../src/runner/browser-env/vite/plugins/generate-index-html.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { Config } from "../../../config";
2
+ export declare class ViteServer {
3
+ private _testplaneConfig;
4
+ private _viteConfig;
5
+ private _options?;
6
+ private _server?;
7
+ static create<T extends ViteServer>(this: new (testplaneConfig: Config) => T, testplaneConfig: Config): T;
8
+ constructor(testplaneConfig: Config);
9
+ start(): Promise<void>;
10
+ close(): Promise<void>;
11
+ private _applyUserViteConfig;
12
+ private _addRequiredVitePlugins;
13
+ get baseUrl(): string | undefined;
14
+ }
@@ -0,0 +1,117 @@
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.ViteServer = void 0;
30
+ // remove after migrate to esm
31
+ process.env.VITE_CJS_IGNORE_WARNING = "1";
32
+ const node_path_1 = __importDefault(require("node:path"));
33
+ const vite_1 = require("vite");
34
+ const lodash_1 = __importDefault(require("lodash"));
35
+ const get_port_1 = __importDefault(require("get-port"));
36
+ const chalk_1 = __importDefault(require("chalk"));
37
+ const logger_1 = __importDefault(require("../../../utils/logger"));
38
+ const socket_1 = require("./socket");
39
+ const generate_index_html_1 = require("./plugins/generate-index-html");
40
+ const constants_1 = require("./constants");
41
+ class ViteServer {
42
+ static create(testplaneConfig) {
43
+ return new this(testplaneConfig);
44
+ }
45
+ constructor(testplaneConfig) {
46
+ this._testplaneConfig = testplaneConfig;
47
+ this._viteConfig = {
48
+ server: { host: "localhost" },
49
+ configFile: false,
50
+ logLevel: "silent",
51
+ build: {
52
+ sourcemap: "inline",
53
+ },
54
+ optimizeDeps: {
55
+ // listed deps are CJS packages and need to be compiled to ESM by Vite
56
+ include: [
57
+ "expect",
58
+ // webdriverio deps
59
+ "aria-query",
60
+ "css-shorthand-properties",
61
+ "css-value",
62
+ "grapheme-splitter",
63
+ "lodash.clonedeep",
64
+ "lodash.zip",
65
+ "minimatch",
66
+ "rgb2hex",
67
+ "ws",
68
+ ],
69
+ esbuildOptions: {
70
+ logLevel: "silent",
71
+ },
72
+ },
73
+ };
74
+ this._options = lodash_1.default.isArray(this._testplaneConfig.system.testRunEnv)
75
+ ? this._testplaneConfig.system.testRunEnv[1]
76
+ : undefined;
77
+ }
78
+ async start() {
79
+ await this._applyUserViteConfig();
80
+ await this._addRequiredVitePlugins();
81
+ if (!this._viteConfig.server.port) {
82
+ this._viteConfig.server.port = await (0, get_port_1.default)();
83
+ }
84
+ this._server = await (0, vite_1.createServer)(this._viteConfig);
85
+ (0, socket_1.createSocketServer)(this._server.httpServer);
86
+ await this._server.listen();
87
+ logger_1.default.log(chalk_1.default.green(`Vite server started on ${this.baseUrl}`));
88
+ }
89
+ async close() {
90
+ await this._server?.close();
91
+ }
92
+ async _applyUserViteConfig() {
93
+ if (!this._options?.viteConfig) {
94
+ return;
95
+ }
96
+ const config = this._options.viteConfig;
97
+ let preparedConfig;
98
+ if (lodash_1.default.isString(config)) {
99
+ preparedConfig = (await Promise.resolve(`${node_path_1.default.resolve(process.cwd(), config)}`).then(s => __importStar(require(s)))).default;
100
+ }
101
+ else if (lodash_1.default.isFunction(config)) {
102
+ preparedConfig = await config(constants_1.VITE_DEFAULT_CONFIG_ENV);
103
+ }
104
+ else {
105
+ preparedConfig = config;
106
+ }
107
+ this._viteConfig = lodash_1.default.merge(this._viteConfig, preparedConfig);
108
+ }
109
+ async _addRequiredVitePlugins() {
110
+ this._viteConfig.plugins = [...(this._viteConfig.plugins || []), await (0, generate_index_html_1.plugin)()];
111
+ }
112
+ get baseUrl() {
113
+ return this._server?.resolvedUrls.local[0];
114
+ }
115
+ }
116
+ exports.ViteServer = ViteServer;
117
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../../src/runner/browser-env/vite/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ViteDevServer } from "vite";
2
+ export declare const createSocketServer: (viteHttpServer: ViteDevServer["httpServer"]) => void;
@@ -0,0 +1,106 @@
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.createSocketServer = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const socket_io_1 = require("socket.io");
9
+ const constants_1 = require("./constants");
10
+ const constants_2 = require("../../../worker/browser-env/runner/test-runner/constants");
11
+ const types_1 = require("./types");
12
+ const types_2 = require("../../../worker/browser-env/runner/test-runner/types");
13
+ const utils_1 = require("./utils");
14
+ const createSocketServer = (viteHttpServer) => {
15
+ const io = new socket_io_1.Server(viteHttpServer);
16
+ io.use((socket, next) => {
17
+ const { runUuid, type } = socket.handshake.auth;
18
+ if (!runUuid) {
19
+ return next(new Error('"runUuid" must be specified in each socket request'));
20
+ }
21
+ if (type === constants_2.WORKER_EVENT_PREFIX) {
22
+ return next();
23
+ }
24
+ const roomSocketCount = io.of("/").adapter.rooms.get(runUuid)?.size || 0;
25
+ if (roomSocketCount >= 2) {
26
+ return next(new Error(`Browser with "runUuid=${runUuid}" is already connected to Vite server. To debug, you need to use a browser launched by Testplane`));
27
+ }
28
+ return next();
29
+ });
30
+ io.on("connection", socket => {
31
+ if (socket.handshake.auth.type === constants_2.WORKER_EVENT_PREFIX) {
32
+ handleWorkerEvents(socket, io);
33
+ }
34
+ if (socket.handshake.auth.type === constants_1.BROWSER_EVENT_PREFIX) {
35
+ handleBrowserEvents(socket, io);
36
+ }
37
+ });
38
+ };
39
+ exports.createSocketServer = createSocketServer;
40
+ function handleWorkerEvents(socket, io) {
41
+ socket.on(types_2.WorkerEventNames.initialize, payload => {
42
+ const { runUuid } = socket.handshake.auth;
43
+ socket.join(runUuid);
44
+ constants_1.WORKER_ENV_BY_RUN_UUID.set(runUuid, payload);
45
+ });
46
+ socket.on(types_2.WorkerEventNames.finalize, () => {
47
+ const { runUuid } = socket.handshake.auth;
48
+ io.socketsLeave(runUuid);
49
+ constants_1.WORKER_ENV_BY_RUN_UUID.delete(socket.handshake.auth.runUuid);
50
+ });
51
+ socket.on(types_2.WorkerEventNames.runRunnable, async (payload, cb) => {
52
+ const { runUuid } = socket.handshake.auth;
53
+ try {
54
+ // specify timeout is not necessary here, but types incorrectly defined without it. So use maximum possible value
55
+ const [errors] = await io
56
+ .to(runUuid)
57
+ .except(socket.id)
58
+ .timeout(constants_1.SOCKET_MAX_TIMEOUT)
59
+ .emitWithAck(types_2.WorkerEventNames.runRunnable, payload);
60
+ cb([(lodash_1.default.isEmpty(errors) ? null : errors[0])]);
61
+ }
62
+ catch (err) {
63
+ cb([(0, utils_1.prepareError)(err)]);
64
+ }
65
+ });
66
+ }
67
+ function handleBrowserEvents(socket, io) {
68
+ socket.on(types_1.BrowserEventNames.initialize, payload => {
69
+ const { runUuid } = socket.handshake.auth;
70
+ socket.join(runUuid);
71
+ io.to(runUuid).except(socket.id).emit(types_1.BrowserEventNames.initialize, payload);
72
+ });
73
+ socket.on(types_1.BrowserEventNames.callConsoleMethod, payload => {
74
+ const { runUuid } = socket.handshake.auth;
75
+ io.to(runUuid).except(socket.id).emit(types_1.BrowserEventNames.callConsoleMethod, payload);
76
+ });
77
+ socket.on(types_1.BrowserEventNames.runBrowserCommand, async (payload, cb) => {
78
+ const { runUuid } = socket.handshake.auth;
79
+ try {
80
+ const [response] = await io
81
+ .to(runUuid)
82
+ .except(socket.id)
83
+ .timeout(constants_1.SOCKET_MAX_TIMEOUT)
84
+ .emitWithAck(types_1.BrowserEventNames.runBrowserCommand, payload);
85
+ cb(response);
86
+ }
87
+ catch (err) {
88
+ cb([err]);
89
+ }
90
+ });
91
+ socket.on(types_1.BrowserEventNames.runExpectMatcher, async (payload, cb) => {
92
+ const { runUuid } = socket.handshake.auth;
93
+ try {
94
+ const [response] = await io
95
+ .to(runUuid)
96
+ .except(socket.id)
97
+ .timeout(constants_1.SOCKET_MAX_TIMEOUT)
98
+ .emitWithAck(types_1.BrowserEventNames.runExpectMatcher, payload);
99
+ cb(response);
100
+ }
101
+ catch (err) {
102
+ cb([{ pass: false, message: err.message }]);
103
+ }
104
+ });
105
+ }
106
+ //# sourceMappingURL=socket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../../../src/runner/browser-env/vite/socket.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { InlineConfig, ConfigEnv } from "vite";
2
+ import type { BrowserViteEvents, WorkerViteEvents, ViteBrowserEvents } from "./browser-modules/types";
3
+ export type { BrowserViteEvents, WorkerViteEvents } from "./browser-modules/types";
4
+ export interface BrowserTestRunEnvOptions {
5
+ viteConfig?: string | InlineConfig | ((env: ConfigEnv) => InlineConfig | Promise<InlineConfig>);
6
+ }
7
+ export interface ClientViteEvents extends BrowserViteEvents, WorkerViteEvents {
8
+ }
9
+ export interface ViteClientEvents extends BrowserViteEvents, ViteBrowserEvents {
10
+ }
11
+ export declare enum BrowserEventNames {
12
+ initialize = "browser:initialize",
13
+ runBrowserCommand = "browser:runBrowserCommand",
14
+ runExpectMatcher = "browser:runExpectMatcher",
15
+ callConsoleMethod = "browser:callConsoleMethod"
16
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BrowserEventNames = void 0;
4
+ const constants_1 = require("./constants");
5
+ // TODO: use from "./browser-modules/types" after migrate to esm
6
+ var BrowserEventNames;
7
+ (function (BrowserEventNames) {
8
+ BrowserEventNames["initialize"] = "browser:initialize";
9
+ BrowserEventNames["runBrowserCommand"] = "browser:runBrowserCommand";
10
+ BrowserEventNames["runExpectMatcher"] = "browser:runExpectMatcher";
11
+ BrowserEventNames["callConsoleMethod"] = "browser:callConsoleMethod";
12
+ })(BrowserEventNames || (exports.BrowserEventNames = BrowserEventNames = {}));
13
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/runner/browser-env/vite/types.ts"],"names":[],"mappings":";;;AAAA,2CAAmD;AAanD,gEAAgE;AAChE,IAAY,iBAKX;AALD,WAAY,iBAAiB;IACzB,sDAAiD,CAAA;IACjD,oEAA+D,CAAA;IAC/D,kEAA6D,CAAA;IAC7D,oEAA+D,CAAA;AACnE,CAAC,EALW,iBAAiB,iCAAjB,iBAAiB,QAK5B"}
@@ -0,0 +1,7 @@
1
+ export declare const getImportMetaUrl: (path: string) => string;
2
+ export declare const getNodeModulePath: ({ moduleName, rootDir, parent, }: {
3
+ moduleName: string;
4
+ rootDir?: string | undefined;
5
+ parent?: string | undefined;
6
+ }) => Promise<string>;
7
+ export declare const prepareError: (error: Error) => Error;
@@ -0,0 +1,26 @@
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.prepareError = exports.getNodeModulePath = exports.getImportMetaUrl = void 0;
7
+ const node_url_1 = __importDefault(require("node:url"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ // TODO: use import.meta.url after migrate to esm
10
+ const getImportMetaUrl = (path) => {
11
+ return node_url_1.default.pathToFileURL(path).toString();
12
+ };
13
+ exports.getImportMetaUrl = getImportMetaUrl;
14
+ const getNodeModulePath = async ({ moduleName, rootDir = process.cwd(), parent = "node_modules", }) => {
15
+ const rootFileUrl = node_url_1.default.pathToFileURL(rootDir).href;
16
+ // TODO: use import at the beginning of the file after migrate to esm
17
+ const { resolve } = await eval(`import("import-meta-resolve")`);
18
+ return resolve(moduleName, node_path_1.default.join(rootFileUrl, parent));
19
+ };
20
+ exports.getNodeModulePath = getNodeModulePath;
21
+ // TODO: use from browser code after migrate to esm
22
+ const prepareError = (error) => {
23
+ return JSON.parse(JSON.stringify(error, Object.getOwnPropertyNames(error)));
24
+ };
25
+ exports.prepareError = prepareError;
26
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/runner/browser-env/vite/utils.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA2B;AAC3B,0DAA6B;AAE7B,iDAAiD;AAC1C,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAU,EAAE;IACrD,OAAO,kBAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC9C,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B;AAEK,MAAM,iBAAiB,GAAG,KAAK,EAAE,EACpC,UAAU,EACV,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,EACvB,MAAM,GAAG,cAAc,GAK1B,EAAmB,EAAE;IAClB,MAAM,WAAW,GAAG,kBAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;IAEpD,qEAAqE;IACrE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAEhE,OAAO,OAAO,CAAC,UAAU,EAAE,mBAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAC;AAfW,QAAA,iBAAiB,qBAe5B;AAEF,mDAAmD;AAC5C,MAAM,YAAY,GAAG,CAAC,KAAY,EAAS,EAAE;IAChD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB"}
@@ -21,6 +21,7 @@ const { TreeBuilder } = require("./tree-builder");
21
21
  const { readFiles } = require("./mocha-reader");
22
22
  const { TestReaderEvents } = require("../events");
23
23
  const { TestParserAPI } = require("./test-parser-api");
24
+ const { setupTransformHook } = require("./test-transformer");
24
25
  const { MasterEvents } = require("../events");
25
26
  const _ = require("lodash");
26
27
  const clearRequire = require("clear-require");
@@ -52,9 +53,11 @@ class TestParser extends EventEmitter {
52
53
  __classPrivateFieldGet(this, _TestParser_instances, "m", _TestParser_applyInstructionsEvents).call(this, eventBus);
53
54
  __classPrivateFieldGet(this, _TestParser_instances, "m", _TestParser_passthroughFileEvents).call(this, eventBus, toolGlobals);
54
55
  __classPrivateFieldGet(this, _TestParser_instances, "m", _TestParser_clearRequireCache).call(this, files);
56
+ const revertTransformHook = setupTransformHook();
55
57
  const rand = Math.random();
56
58
  const esmDecorator = f => f + `?rand=${rand}`;
57
59
  await readFiles(files, { esmDecorator, config: mochaOpts, eventBus });
60
+ revertTransformHook();
58
61
  }
59
62
  parse(files, { browserId, config, grep }) {
60
63
  const treeBuilder = new TreeBuilder();
@@ -1 +1 @@
1
- {"version":3,"file":"test-parser.js","sourceRoot":"","sources":["../../../src/test-reader/test-parser.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-parser.js","sourceRoot":"","sources":["../../../src/test-reader/test-parser.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const setupTransformHook: () => VoidFunction;
2
+ export declare const TRANSFORM_EXTENSIONS: string[];
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-var-requires */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.TRANSFORM_EXTENSIONS = exports.setupTransformHook = void 0;
5
+ // TODO: use import instead require. Currently require is used because ts build filed from bundle folder even if it excluded in tsconfig
6
+ exports.setupTransformHook = require("../bundle").setupTransformHook;
7
+ exports.TRANSFORM_EXTENSIONS = require("../bundle").TRANSFORM_EXTENSIONS;
8
+ //# sourceMappingURL=test-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-transformer.js","sourceRoot":"","sources":["../../../src/test-reader/test-transformer.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAEvD,wIAAwI;AAC3H,QAAA,kBAAkB,GAAuB,OAAO,CAAC,WAAW,CAAC,CAAC,kBAAkB,CAAC;AACjF,QAAA,oBAAoB,GAAa,OAAO,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { CommanderStatic } from "@gemini-testing/commander";
2
2
  import { BaseTestplane } from "./base-testplane";
3
- import { MainRunner } from "./runner";
3
+ import { MainRunner as NodejsEnvRunner } from "./runner";
4
+ import { MainRunner as BrowserEnvRunner } from "./runner/browser-env";
4
5
  import { TestCollection } from "./test-collection";
5
6
  import { ConfigInput } from "./config/types";
6
7
  import { MasterEventHandler, Test } from "./types";
@@ -33,7 +34,7 @@ export interface Testplane {
33
34
  }
34
35
  export declare class Testplane extends BaseTestplane {
35
36
  protected failed: boolean;
36
- protected runner: MainRunner | null;
37
+ protected runner: NodejsEnvRunner | BrowserEnvRunner | null;
37
38
  constructor(config?: string | ConfigInput);
38
39
  extendCli(parser: CommanderStatic): void;
39
40
  run(testPaths: TestCollection | string[], { browsers, sets, grep, updateRefs, requireModules, inspectMode, replMode, devtools, reporters, }?: Partial<RunOpts>): Promise<boolean>;
@@ -8,6 +8,7 @@ const lodash_1 = __importDefault(require("lodash"));
8
8
  const stats_1 = require("./stats");
9
9
  const base_testplane_1 = require("./base-testplane");
10
10
  const runner_1 = require("./runner");
11
+ const browser_env_1 = require("./runner/browser-env");
11
12
  const runtime_config_1 = __importDefault(require("./config/runtime-config"));
12
13
  const events_1 = require("./events");
13
14
  const utils_1 = __importDefault(require("./events/utils"));
@@ -17,6 +18,7 @@ const test_collection_1 = require("./test-collection");
17
18
  const validators_1 = require("./validators");
18
19
  const reporters_1 = require("./reporters");
19
20
  const logger_1 = __importDefault(require("./utils/logger"));
21
+ const config_1 = require("./utils/config");
20
22
  class Testplane extends base_testplane_1.BaseTestplane {
21
23
  constructor(config) {
22
24
  super(config);
@@ -32,7 +34,7 @@ class Testplane extends base_testplane_1.BaseTestplane {
32
34
  if (replMode?.enabled) {
33
35
  this._config.system.mochaOpts.timeout = 0;
34
36
  }
35
- const runner = runner_1.MainRunner.create(this._config, this._interceptors);
37
+ const runner = ((0, config_1.isRunInNodeJsEnv)(this._config) ? runner_1.MainRunner : browser_env_1.MainRunner).create(this._config, this._interceptors);
36
38
  this.runner = runner;
37
39
  this.on(events_1.MasterEvents.TEST_FAIL, () => this._fail()).on(events_1.MasterEvents.ERROR, (err) => this.halt(err));
38
40
  await (0, reporters_1.initReporters)(reporters, this);
@@ -1 +1 @@
1
- {"version":3,"file":"testplane.js","sourceRoot":"","sources":["../../src/testplane.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testplane.js","sourceRoot":"","sources":["../../src/testplane.ts"],"names":[],"mappings":"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"}