sefiutils 1.3.1 → 1.3.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.
- package/lib/fiberUtils.js +3 -14
- package/lib/fiberUtils.js.map +1 -1
- package/lib/globalSetup.js +107 -104
- package/lib/globalSetup.js.map +1 -1
- package/lib/globalTeardown.js +9 -20
- package/lib/globalTeardown.js.map +1 -1
- package/lib/localSetup.js +104 -113
- package/lib/localSetup.js.map +1 -1
- package/lib/localTeardown.js +8 -19
- package/lib/localTeardown.js.map +1 -1
- package/lib/seUtils.js +336 -409
- package/lib/seUtils.js.map +1 -1
- package/package.json +1 -1
- package/src/globalSetup.ts +4 -0
package/lib/fiberUtils.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.getReactComponentTree = getReactComponentTree;
|
|
13
4
|
exports.dumpComponentTree = dumpComponentTree;
|
|
@@ -16,11 +7,9 @@ exports.findAllInComponentTree = findAllInComponentTree;
|
|
|
16
7
|
exports.componentPathExists = componentPathExists;
|
|
17
8
|
exports.retrieveComponentPath = retrieveComponentPath;
|
|
18
9
|
const seUtils_1 = require("./seUtils");
|
|
19
|
-
function getReactComponentTree(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return cmpTree;
|
|
23
|
-
});
|
|
10
|
+
async function getReactComponentTree(driver, functionComponentsOnly = true) {
|
|
11
|
+
const cmpTree = await (0, seUtils_1.execScript)(driver, "execScripts/fiber.js", functionComponentsOnly ? "uniDirFunctionComponentsTree" : "uniDirComponentsTree");
|
|
12
|
+
return cmpTree;
|
|
24
13
|
}
|
|
25
14
|
function dumpComponentTree(node, options = { showProps: true, showKind: true }) {
|
|
26
15
|
let out = "";
|
package/lib/fiberUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fiberUtils.js","sourceRoot":"","sources":["../src/fiberUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fiberUtils.js","sourceRoot":"","sources":["../src/fiberUtils.ts"],"names":[],"mappings":"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"}
|
package/lib/globalSetup.js
CHANGED
|
@@ -15,22 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
34
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
37
|
};
|
|
@@ -63,20 +64,18 @@ const geckodriver_1 = require("geckodriver");
|
|
|
63
64
|
* Do not forget a global teardown function, which is called after all tests are executed,
|
|
64
65
|
* cf. globalTeardown.ts
|
|
65
66
|
*/
|
|
66
|
-
function setGlobalObjects() {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
yield setUpSeleniumServer();
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
catch (err) {
|
|
76
|
-
console.error(`Error setting up server for browser ${browser}: ${err}`);
|
|
77
|
-
throw err;
|
|
67
|
+
async function setGlobalObjects() {
|
|
68
|
+
const browser = process.env.SEFI_BROWSER || "remote";
|
|
69
|
+
(0, log_1.verbose)(`Global Setup: Use browser: ${browser}`);
|
|
70
|
+
try {
|
|
71
|
+
if (browser === "remote") {
|
|
72
|
+
await setUpSeleniumServer();
|
|
78
73
|
}
|
|
79
|
-
}
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
console.error(`Error setting up server for browser ${browser}: ${err}`);
|
|
77
|
+
throw err;
|
|
78
|
+
}
|
|
80
79
|
}
|
|
81
80
|
/**
|
|
82
81
|
* Returns the path to the (cached) selenium server jar file. The jar file is automatically downloaded
|
|
@@ -89,91 +88,95 @@ function setGlobalObjects() {
|
|
|
89
88
|
*
|
|
90
89
|
* @returns the path to the selenium server jar file
|
|
91
90
|
*/
|
|
92
|
-
function getSeleniumServerJar() {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (!fs_1.default.existsSync(cachedPath)) {
|
|
104
|
-
|
|
105
|
-
fs_1.default.mkdirSync(path_1.default.dirname(cachedPath), { recursive: true });
|
|
106
|
-
}
|
|
107
|
-
const downloadURL = process.env.SEFI_SELENIUM_SERVER_DOWNLOAD_URL || "https://github.com/SeleniumHQ/selenium/releases/download";
|
|
108
|
-
const url = `${downloadURL}/selenium-${versionParts[0]}.${versionParts[1]}.0/${jarName}`;
|
|
109
|
-
console.log(`Download ${url} to ${cachedPath}`);
|
|
110
|
-
const response = yield fetch(url);
|
|
111
|
-
if (response.status !== 200) {
|
|
112
|
-
throw new Error(`Error downloading ${url}: ${response.status} ${response.statusText}`);
|
|
113
|
-
}
|
|
114
|
-
const blob = yield response.blob();
|
|
115
|
-
const buffer = Buffer.from(yield blob.arrayBuffer());
|
|
116
|
-
(0, fs_1.writeFileSync)(cachedPath, buffer);
|
|
91
|
+
async function getSeleniumServerJar() {
|
|
92
|
+
const seleniumServerVersion = process.env.SEFI_SELENIUM_SERVER_VERSION || "4.16.1";
|
|
93
|
+
const versionParts = seleniumServerVersion.split(".").map(s => parseInt(s));
|
|
94
|
+
if (versionParts.length !== 3) {
|
|
95
|
+
throw new Error(`Invalid version number: ${seleniumServerVersion}`);
|
|
96
|
+
}
|
|
97
|
+
const jarName = `selenium-server-${versionParts[0]}.${versionParts[1]}.${versionParts[2]}.jar`;
|
|
98
|
+
const homeDir = process.env.SEFI_SELENIUM_CACHE_FOLDER || (0, os_1.homedir)();
|
|
99
|
+
const cachedPath = path_1.default.resolve(path_1.default.join(homeDir, ".cache", "selenium-server", jarName));
|
|
100
|
+
(0, log_1.verbose)(`Selenium server jar: ${cachedPath}`);
|
|
101
|
+
if (!fs_1.default.existsSync(cachedPath)) {
|
|
102
|
+
if (!fs_1.default.existsSync(path_1.default.dirname(cachedPath))) {
|
|
103
|
+
fs_1.default.mkdirSync(path_1.default.dirname(cachedPath), { recursive: true });
|
|
117
104
|
}
|
|
118
|
-
|
|
119
|
-
|
|
105
|
+
const downloadURL = process.env.SEFI_SELENIUM_SERVER_DOWNLOAD_URL || "https://github.com/SeleniumHQ/selenium/releases/download";
|
|
106
|
+
const url = `${downloadURL}/selenium-${versionParts[0]}.${versionParts[1]}.0/${jarName}`;
|
|
107
|
+
console.log(`Download ${url} to ${cachedPath}`);
|
|
108
|
+
const response = await fetch(url);
|
|
109
|
+
if (response.status !== 200) {
|
|
110
|
+
throw new Error(`Error downloading ${url}: ${response.status} ${response.statusText}`);
|
|
120
111
|
}
|
|
121
|
-
|
|
122
|
-
|
|
112
|
+
const blob = await response.blob();
|
|
113
|
+
const buffer = Buffer.from(await blob.arrayBuffer());
|
|
114
|
+
(0, fs_1.writeFileSync)(cachedPath, buffer);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
(0, log_1.verbose)(`Selenium server jar already cached`);
|
|
118
|
+
}
|
|
119
|
+
return cachedPath;
|
|
123
120
|
}
|
|
124
|
-
function setUpSeleniumServer() {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
121
|
+
async function setUpSeleniumServer() {
|
|
122
|
+
(0, log_1.debug)("Dynamic import of selenium-webdriver/remote");
|
|
123
|
+
const remote = await Promise.resolve().then(() => __importStar(require("selenium-webdriver/remote")));
|
|
124
|
+
const jarPath = await getSeleniumServerJar();
|
|
125
|
+
if (globalThis.server) {
|
|
126
|
+
await globalThis.server.kill();
|
|
127
|
+
(0, log_1.verbose)("`Server killed before starting again");
|
|
128
|
+
}
|
|
129
|
+
const { port } = (0, seUtils_1.getRemoteAddressAndPort)();
|
|
130
|
+
(0, log_1.debug)(() => `Start selenium server at 127.0.0.1:${port} with SE_NODE_MAX_SESSIONS=4, SE_NODE_OVERRIDE_MAX_SESSIONS=true`);
|
|
131
|
+
const s = new remote.SeleniumServer(jarPath, {
|
|
132
|
+
loopback: true,
|
|
133
|
+
port: port,
|
|
134
|
+
// Claude: bug in Selenium Grid 4.16.1's OpenTelemetry integration — OpenTelemetryContext.createSpan throws IllegalStateException: Context has not been changed on every session creation due to a threading issue in the tracing code
|
|
135
|
+
// closest related issue in Selenium's GitHub repository: https://github.com/SeleniumHQ/selenium/issues/15552
|
|
136
|
+
jvmArgs: ["-Dotel.sdk.disabled=true"],
|
|
137
|
+
env: {
|
|
138
|
+
...process.env,
|
|
139
|
+
"SE_NODE_MAX_SESSIONS": "4",
|
|
140
|
+
"SE_NODE_OVERRIDE_MAX_SESSIONS": "true",
|
|
141
|
+
// "JAVA_OPTS": "-XX:ActiveProcessorCount=4"
|
|
132
142
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
143
|
+
});
|
|
144
|
+
const timeout = parseInt(process.env.SEFI_SELENIUM_SERVER_START_TIMEOUT || "5000");
|
|
145
|
+
(0, log_1.debug)(() => `Selenium server created, start server with timeout ${timeout}`);
|
|
146
|
+
try {
|
|
147
|
+
const actualAddress = await s.start(timeout);
|
|
148
|
+
globalThis.server = s;
|
|
149
|
+
// const address = await globalThis.server.address()
|
|
150
|
+
(0, log_1.debug)(() => `Selenium server started at: ${actualAddress}`);
|
|
151
|
+
}
|
|
152
|
+
catch (err) {
|
|
153
|
+
console.error(`Error starting selenium server: ${err}`);
|
|
154
|
+
let step = "Checking geckodriver (JS library)";
|
|
142
155
|
try {
|
|
143
|
-
const
|
|
156
|
+
const geckoPath = require.resolve("geckodriver");
|
|
157
|
+
console.error(`Hint: geckodriver found at ${geckoPath}`);
|
|
158
|
+
step = "Checking geckodriver (binary)";
|
|
159
|
+
const SEFI_GECKODRIVER_VERSION = process.env.SEFI_GECKODRIVER_VERSION || undefined;
|
|
160
|
+
const SEFI_GECKODRIVER_CACHE_FOLDER = process.env.SEFI_GECKODRIVER_CACHE_FOLDER || undefined;
|
|
161
|
+
const pathToBinary = await (0, geckodriver_1.download)(SEFI_GECKODRIVER_VERSION, SEFI_GECKODRIVER_CACHE_FOLDER);
|
|
162
|
+
console.error(`Hint: geckodriver binary found at ${pathToBinary}`);
|
|
163
|
+
const fstat = await (0, promises_1.stat)(geckoPath);
|
|
164
|
+
console.error(`Hint: geckodriver size: ${fstat.size} bytes`);
|
|
165
|
+
if (!geckoPath.startsWith(process.cwd())) {
|
|
166
|
+
console.error(`Hint: geckodriver not in project directory`); // , check your firewall rules`);
|
|
167
|
+
}
|
|
168
|
+
step = "Restarting";
|
|
169
|
+
console.error("Try again to start the selenium server");
|
|
170
|
+
const actualAddress = await s.start(timeout);
|
|
144
171
|
globalThis.server = s;
|
|
145
172
|
// const address = await globalThis.server.address()
|
|
146
173
|
(0, log_1.debug)(() => `Selenium server started at: ${actualAddress}`);
|
|
147
174
|
}
|
|
148
175
|
catch (err) {
|
|
149
|
-
console.error(`
|
|
150
|
-
|
|
151
|
-
try {
|
|
152
|
-
const geckoPath = require.resolve("geckodriver");
|
|
153
|
-
console.error(`Hint: geckodriver found at ${geckoPath}`);
|
|
154
|
-
step = "Checking geckodriver (binary)";
|
|
155
|
-
const SEFI_GECKODRIVER_VERSION = process.env.SEFI_GECKODRIVER_VERSION || undefined;
|
|
156
|
-
const SEFI_GECKODRIVER_CACHE_FOLDER = process.env.SEFI_GECKODRIVER_CACHE_FOLDER || undefined;
|
|
157
|
-
const pathToBinary = yield (0, geckodriver_1.download)(SEFI_GECKODRIVER_VERSION, SEFI_GECKODRIVER_CACHE_FOLDER);
|
|
158
|
-
console.error(`Hint: geckodriver binary found at ${pathToBinary}`);
|
|
159
|
-
const fstat = yield (0, promises_1.stat)(geckoPath);
|
|
160
|
-
console.error(`Hint: geckodriver size: ${fstat.size} bytes`);
|
|
161
|
-
if (!geckoPath.startsWith(process.cwd())) {
|
|
162
|
-
console.error(`Hint: geckodriver not in project directory`); // , check your firewall rules`);
|
|
163
|
-
}
|
|
164
|
-
step = "Restarting";
|
|
165
|
-
console.error("Try again to start the selenium server");
|
|
166
|
-
const actualAddress = yield s.start(timeout);
|
|
167
|
-
globalThis.server = s;
|
|
168
|
-
// const address = await globalThis.server.address()
|
|
169
|
-
(0, log_1.debug)(() => `Selenium server started at: ${actualAddress}`);
|
|
170
|
-
}
|
|
171
|
-
catch (err) {
|
|
172
|
-
console.error(`Hint: ${step}: ${err}`);
|
|
173
|
-
console.error(`Hint: Is the server already running? Try with lsfof -i ${port} -t`);
|
|
174
|
-
}
|
|
175
|
-
throw err;
|
|
176
|
+
console.error(`Hint: ${step}: ${err}`);
|
|
177
|
+
console.error(`Hint: Is the server already running? Try with lsfof -i ${port} -t`);
|
|
176
178
|
}
|
|
177
|
-
|
|
179
|
+
throw err;
|
|
180
|
+
}
|
|
178
181
|
}
|
|
179
182
|
//# sourceMappingURL=globalSetup.js.map
|
package/lib/globalSetup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalSetup.js","sourceRoot":"","sources":["../src/globalSetup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"globalSetup.js","sourceRoot":"","sources":["../src/globalSetup.ts"],"names":[],"mappings":"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"}
|
package/lib/globalTeardown.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.default = killServer;
|
|
13
4
|
/**
|
|
@@ -22,16 +13,14 @@ exports.default = killServer;
|
|
|
22
13
|
*
|
|
23
14
|
* Here, we stop the remote selenium server if it was started in globalSetup.ts.
|
|
24
15
|
*/
|
|
25
|
-
function killServer() {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
globalThis.server = undefined;
|
|
35
|
-
});
|
|
16
|
+
async function killServer() {
|
|
17
|
+
if (globalThis.server) {
|
|
18
|
+
await server.kill();
|
|
19
|
+
console.log(`global Teardown: Server killed`);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
console.log(`global Teardown: No server to kill`);
|
|
23
|
+
}
|
|
24
|
+
globalThis.server = undefined;
|
|
36
25
|
}
|
|
37
26
|
//# sourceMappingURL=globalTeardown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalTeardown.js","sourceRoot":"","sources":["../src/globalTeardown.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"globalTeardown.js","sourceRoot":"","sources":["../src/globalTeardown.ts"],"names":[],"mappings":";;AAaA,6BAQC;AApBD;;;;;;;;;;;GAWG;AACY,KAAK,UAAU,UAAU;IACpC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IACtD,CAAC;IACD,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;AAClC,CAAC"}
|