sefiutils 1.0.51 → 1.0.54
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/README.md +7 -8
- package/lib/fiberUtils.js +8 -9
- package/lib/fiberUtils.js.map +1 -1
- package/lib/globalSetup.d.ts.map +1 -1
- package/lib/globalSetup.js +26 -10
- package/lib/globalSetup.js.map +1 -1
- package/lib/globalTeardown.js +1 -1
- package/lib/globalTeardown.js.map +1 -1
- package/lib/localSetup.d.ts +1 -1
- package/lib/localSetup.d.ts.map +1 -1
- package/lib/localSetup.js +37 -20
- package/lib/localSetup.js.map +1 -1
- package/lib/localTeardown.js +1 -2
- package/lib/localTeardown.js.map +1 -1
- package/lib/log.js +2 -3
- package/lib/log.js.map +1 -1
- package/lib/seUtils.d.ts +4 -0
- package/lib/seUtils.d.ts.map +1 -1
- package/lib/seUtils.js +74 -60
- package/lib/seUtils.js.map +1 -1
- package/package.json +8 -8
- package/src/globalSetup.ts +33 -17
- package/src/localSetup.ts +35 -17
- package/src/seUtils.ts +19 -9
- package/lib/execScripts/dom.js +0 -15
package/README.md
CHANGED
|
@@ -34,7 +34,7 @@ npm install --save-dev sefiutils
|
|
|
34
34
|
|
|
35
35
|
In your jest.config.js file add the following lines:
|
|
36
36
|
|
|
37
|
-
```
|
|
37
|
+
```js
|
|
38
38
|
globalSetup: "<rootDir>/node_modules/sefiutils/lib/globalSetup.js",
|
|
39
39
|
globalTeardown: "<rootDir>/node_modules/sefiutils/lib/globalTeardown.js"
|
|
40
40
|
```
|
|
@@ -43,7 +43,7 @@ globalTeardown: "<rootDir>/node_modules/sefiutils/lib/globalTeardown.js"
|
|
|
43
43
|
<summary>Note on docker containers on macos:</summary>
|
|
44
44
|
In a docker container on macos, relative paths may cause problems. E.g.,
|
|
45
45
|
|
|
46
|
-
```
|
|
46
|
+
```js
|
|
47
47
|
globalSetup: "<rootDir>/../node_modules/sefiutils/lib/globalSetup.js",
|
|
48
48
|
globalTeardown: "<rootDir>/../node_modules/sefiutils/lib/globalTeardown.js"
|
|
49
49
|
```
|
|
@@ -67,7 +67,7 @@ selenium server is started. The following values are supported:
|
|
|
67
67
|
|
|
68
68
|
In your tests, add the following lines (or similar) to setup and teardown the driver and load the page:
|
|
69
69
|
|
|
70
|
-
```
|
|
70
|
+
```js
|
|
71
71
|
import { LOCAL_SETUP_TIMEOUT, localSetup} from "sefiutils/lib/localSetup"
|
|
72
72
|
import { localTeardown} from "sefiutils/lib/localTeardown"
|
|
73
73
|
|
|
@@ -113,7 +113,7 @@ Most of these functions are scripts executed in the browser via Selenium Webdriv
|
|
|
113
113
|
|
|
114
114
|
If you want to test the React components hierarchy, you can use the following functions:
|
|
115
115
|
|
|
116
|
-
```
|
|
116
|
+
```js
|
|
117
117
|
import { ComponentNode, dumpComponentTree, findAllInComponentTree,
|
|
118
118
|
findInComponentTree, getReactComponentTree} from "sefiutils/lib/fiberUtils"
|
|
119
119
|
|
|
@@ -126,7 +126,7 @@ await waitFor(async () => {
|
|
|
126
126
|
|
|
127
127
|
For debugging, you can also dump the tree;
|
|
128
128
|
|
|
129
|
-
```
|
|
129
|
+
```js
|
|
130
130
|
console.log("Component Tree:\n" + dumpComponentTree(cmpTree));
|
|
131
131
|
```
|
|
132
132
|
|
|
@@ -136,7 +136,7 @@ In order to keep the names, you must use a trick described by [François Zaninot
|
|
|
136
136
|
|
|
137
137
|
1. Install rewire: `npm install rewire`
|
|
138
138
|
2. Write a small script, e.g. build.js as follows:
|
|
139
|
-
```
|
|
139
|
+
```js
|
|
140
140
|
const rewire = require('rewire');
|
|
141
141
|
const defaults = rewire('react-scripts/scripts/build.js');
|
|
142
142
|
const config = defaults.__get__('config');
|
|
@@ -158,7 +158,7 @@ If you have problems starting the driver or something like that, set the environ
|
|
|
158
158
|
|
|
159
159
|
If you want to run your JavaScript tests in a docker container, you can use the following Dockerfile `seleniumnode20`:
|
|
160
160
|
|
|
161
|
-
```
|
|
161
|
+
```sh
|
|
162
162
|
# build with: docker build -t seleniumnode20 .
|
|
163
163
|
# User: seluser, Home: /home/seluser, Shell: /bin/bash
|
|
164
164
|
FROM selenium/standalone-firefox:latest
|
|
@@ -185,7 +185,6 @@ Several environment variables can be used to configure SEFIUTILS.
|
|
|
185
185
|
- SEFI_SELENIUM_SERVER_DOWNLOAD_URL, URL (prefix) from where the selenium server jar will be downloaded, default https://github.com/SeleniumHQ/selenium/releases/download
|
|
186
186
|
- SEFI_SELENIUM_CACHE_FOLDER: The folder to which the selenium server jar is downloaded (inside a folder ./cache and the selenium version). If not specified, the homefolder of the current user is used. However, in some cases (Docker, Gitlab) this is not possible.
|
|
187
187
|
|
|
188
|
-
|
|
189
188
|
The environment is also passed to Selenium, so specific Selenium configurations can be set as well.
|
|
190
189
|
|
|
191
190
|
# Troubleshooting
|
package/lib/fiberUtils.js
CHANGED
|
@@ -9,15 +9,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.getReactComponentTree = getReactComponentTree;
|
|
13
|
+
exports.dumpComponentTree = dumpComponentTree;
|
|
14
|
+
exports.findInComponentTree = findInComponentTree;
|
|
15
|
+
exports.findAllInComponentTree = findAllInComponentTree;
|
|
16
|
+
exports.componentPathExists = componentPathExists;
|
|
17
|
+
exports.retrieveComponentPath = retrieveComponentPath;
|
|
13
18
|
const seUtils_1 = require("./seUtils");
|
|
14
|
-
function getReactComponentTree(
|
|
15
|
-
return __awaiter(this,
|
|
19
|
+
function getReactComponentTree(driver_1) {
|
|
20
|
+
return __awaiter(this, arguments, void 0, function* (driver, functionComponentsOnly = true) {
|
|
16
21
|
const cmpTree = yield (0, seUtils_1.execScript)(driver, "execScripts/fiber.js", functionComponentsOnly ? "uniDirFunctionComponentsTree" : "uniDirComponentsTree");
|
|
17
22
|
return cmpTree;
|
|
18
23
|
});
|
|
19
24
|
}
|
|
20
|
-
exports.getReactComponentTree = getReactComponentTree;
|
|
21
25
|
function dumpComponentTree(node, options = { showProps: true, showKind: true }) {
|
|
22
26
|
let out = "";
|
|
23
27
|
dump(node);
|
|
@@ -36,7 +40,6 @@ function dumpComponentTree(node, options = { showProps: true, showKind: true })
|
|
|
36
40
|
}
|
|
37
41
|
}
|
|
38
42
|
}
|
|
39
|
-
exports.dumpComponentTree = dumpComponentTree;
|
|
40
43
|
/**
|
|
41
44
|
* Returns the first node matching the predecate (by depth first search) or undefined if none is found.
|
|
42
45
|
*/
|
|
@@ -52,7 +55,6 @@ function findInComponentTree(node, predicate) {
|
|
|
52
55
|
}
|
|
53
56
|
return undefined;
|
|
54
57
|
}
|
|
55
|
-
exports.findInComponentTree = findInComponentTree;
|
|
56
58
|
function findAllInComponentTree(node, predicate) {
|
|
57
59
|
const res = [];
|
|
58
60
|
findAll(node);
|
|
@@ -66,7 +68,6 @@ function findAllInComponentTree(node, predicate) {
|
|
|
66
68
|
}
|
|
67
69
|
}
|
|
68
70
|
}
|
|
69
|
-
exports.findAllInComponentTree = findAllInComponentTree;
|
|
70
71
|
/**
|
|
71
72
|
* Returns true if a component path exists in the component tree with
|
|
72
73
|
* components names as path elements. Note that there might be
|
|
@@ -97,7 +98,6 @@ function componentPathExists(root, path, options = {}) {
|
|
|
97
98
|
}
|
|
98
99
|
return false;
|
|
99
100
|
}
|
|
100
|
-
exports.componentPathExists = componentPathExists;
|
|
101
101
|
/**
|
|
102
102
|
* Returns a path with preceding siblings from startComponent to endComponent, including both.
|
|
103
103
|
* If no path exists, an empty array is returned.
|
|
@@ -129,5 +129,4 @@ function retrieveComponentPath(root, startComponent, endComponent, options = {})
|
|
|
129
129
|
return undefined;
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
|
-
exports.retrieveComponentPath = retrieveComponentPath;
|
|
133
132
|
//# sourceMappingURL=fiberUtils.js.map
|
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":";;;;;;;;;;;AAaA,sDAKC;AAGD,8CAoBC;AAKD,kDAWC;AAED,wDAcC;AAOD,kDA0BC;AAOD,sDA+BC;AA/ID,uCAAmD;AAYnD,SAAsB,qBAAqB;yDAAC,MAAiB,EAAE,sBAAsB,GAAG,IAAI;QACxF,MAAM,OAAO,GAAkB,MAAM,IAAA,oBAAU,EAAC,MAAM,EAClD,sBAAsB,EACtB,sBAAsB,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;QACtF,OAAO,OAAO,CAAC;IACnB,CAAC;CAAA;AAGD,SAAgB,iBAAiB,CAAC,IAAmB,EACjD,UACM,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,CAAC,IAAI,CAAC,CAAA;IACV,OAAO,GAAG,CAAC;IAEX,SAAS,IAAI,CAAC,IAAmB,EAAE,SAAiB,EAAE;QAClD,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3D,GAAG,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC;QACD,GAAG,IAAI,IAAI,CAAC;QACZ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,IAAmB,EAAE,SAA2C;IAChG,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACpD,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAgB,sBAAsB,CAAC,IAAmB,EAAE,SAA2C;IAEnG,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,OAAO,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,GAAG,CAAC;IAEX,SAAS,OAAO,CAAC,IAAmB;QAChC,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACL,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,IAA+B,EAAE,IAAyB,EAC1F,UAAoC,EAAE;IACtC,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,IAAA,oBAAU,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;gBAC5C,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;IACL,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAGD;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,IAA+B,EAAE,cAA+B,EAAE,YAA6B,EACjI,UAAoC,EAAE;IACtC,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,UAAU,GAAG,sBAAsB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1G,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI,IAAI,EAAE,CAAC;YACP,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IACD,OAAO,EAAE,CAAC;IAEV,SAAS,OAAO,CAAC,IAAmB,EAAE,IAAc;QAChD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,IAAA,oBAAU,EAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC;YAC/C,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC1C,IAAI,SAAS,EAAE,CAAC;gBACZ,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC"}
|
package/lib/globalSetup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalSetup.d.ts","sourceRoot":"","sources":["../src/globalSetup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"globalSetup.d.ts","sourceRoot":"","sources":["../src/globalSetup.ts"],"names":[],"mappings":"AAUA,OAAO,CAAC,MAAM,CAAC;IACX,IAAI,MAAM,EAAE,GAAG,CAAC;CAEnB;AACD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAA8B,gBAAgB,kBAY7C;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,oBA4BzC"}
|
package/lib/globalSetup.js
CHANGED
|
@@ -35,14 +35,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.
|
|
38
|
+
exports.default = setGlobalObjects;
|
|
39
|
+
exports.getSeleniumServerJar = getSeleniumServerJar;
|
|
39
40
|
const dotenv_1 = __importDefault(require("dotenv"));
|
|
40
41
|
dotenv_1.default.config(); // read ".env"
|
|
41
|
-
const path_1 = __importDefault(require("path"));
|
|
42
42
|
const fs_1 = __importStar(require("fs"));
|
|
43
|
+
const promises_1 = require("fs/promises");
|
|
44
|
+
const os_1 = require("os");
|
|
45
|
+
const path_1 = __importDefault(require("path"));
|
|
43
46
|
const log_1 = require("./log");
|
|
44
47
|
const seUtils_1 = require("./seUtils");
|
|
45
|
-
const os_1 = require("os");
|
|
46
48
|
/**
|
|
47
49
|
* This function is called by Jest once before all tests are executed.
|
|
48
50
|
* In order to get called, it must be referenced in the jest configuration file:
|
|
@@ -70,12 +72,11 @@ function setGlobalObjects() {
|
|
|
70
72
|
}
|
|
71
73
|
}
|
|
72
74
|
catch (err) {
|
|
73
|
-
console.error(`Error setting up server: ${err}`);
|
|
75
|
+
console.error(`Error setting up server for browser ${browser}: ${err}`);
|
|
74
76
|
throw err;
|
|
75
77
|
}
|
|
76
78
|
});
|
|
77
79
|
}
|
|
78
|
-
exports.default = setGlobalObjects;
|
|
79
80
|
/**
|
|
80
81
|
* Returns the path to the (cached) selenium server jar file. The jar file is automatically downloaded
|
|
81
82
|
* if it is not already cached.
|
|
@@ -119,7 +120,6 @@ function getSeleniumServerJar() {
|
|
|
119
120
|
return cachedPath;
|
|
120
121
|
});
|
|
121
122
|
}
|
|
122
|
-
exports.getSeleniumServerJar = getSeleniumServerJar;
|
|
123
123
|
function setUpSeleniumServer() {
|
|
124
124
|
return __awaiter(this, void 0, void 0, function* () {
|
|
125
125
|
(0, log_1.debug)("Dynamic import of selenium-webdriver/remote");
|
|
@@ -136,10 +136,26 @@ function setUpSeleniumServer() {
|
|
|
136
136
|
env: Object.assign(Object.assign({}, process.env), { "SE_NODE_MAX_SESSIONS": "4", "SE_NODE_OVERRIDE_MAX_SESSIONS": "true" })
|
|
137
137
|
});
|
|
138
138
|
const timeout = parseInt(process.env.SEFI_SELENIUM_SERVER_START_TIMEOUT || "5000");
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
139
|
+
(0, log_1.debug)(() => `Selenium server created, start server with timeout ${timeout}`);
|
|
140
|
+
try {
|
|
141
|
+
const actualAddress = yield s.start(timeout);
|
|
142
|
+
globalThis.server = s;
|
|
143
|
+
// const address = await globalThis.server.address()
|
|
144
|
+
(0, log_1.debug)(() => `Selenium server started at: ${actualAddress}`);
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
try {
|
|
148
|
+
const geckoPath = require.resolve("geckodriver");
|
|
149
|
+
yield (0, promises_1.stat)(geckoPath);
|
|
150
|
+
if (!geckoPath.startsWith(process.cwd())) {
|
|
151
|
+
console.error(`geckodriver found at ${geckoPath}, but not in project directory, try to install it with 'npm i -D geckodriver'`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
catch (err) {
|
|
155
|
+
console.error("geckodriver not found, please install it with 'npm i -D geckodriver'");
|
|
156
|
+
}
|
|
157
|
+
throw err;
|
|
158
|
+
}
|
|
143
159
|
});
|
|
144
160
|
}
|
|
145
161
|
//# 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
|
@@ -9,6 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.default = killServer;
|
|
12
13
|
/**
|
|
13
14
|
* This function is called by Jest once after tests have been executed.
|
|
14
15
|
* In order to get called, it must be referenced in the jest configuration file:
|
|
@@ -33,5 +34,4 @@ function killServer() {
|
|
|
33
34
|
globalThis.server = undefined;
|
|
34
35
|
});
|
|
35
36
|
}
|
|
36
|
-
exports.default = killServer;
|
|
37
37
|
//# 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;AACH,SAA8B,UAAU;;QACpC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QACtD,CAAC;QACD,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;IAClC,CAAC;CAAA"}
|
package/lib/localSetup.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { WebDriver } from "selenium-webdriver";
|
|
2
|
-
export declare const LOCAL_SETUP_TIMEOUT
|
|
2
|
+
export declare const LOCAL_SETUP_TIMEOUT: number;
|
|
3
3
|
export declare function localSetup(page: string, width?: number, height?: number, acceptUntrustedCertificates?: boolean): Promise<WebDriver>;
|
|
4
4
|
//# sourceMappingURL=localSetup.d.ts.map
|
package/lib/localSetup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localSetup.d.ts","sourceRoot":"","sources":["../src/localSetup.ts"],"names":[],"mappings":"AAGA,OAAO,EAAyB,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"localSetup.d.ts","sourceRoot":"","sources":["../src/localSetup.ts"],"names":[],"mappings":"AAGA,OAAO,EAAyB,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAKtE,eAAO,MAAM,mBAAmB,QAAwD,CAAC;AAIzF,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAM,EAAE,MAAM,SAAM,EAAE,2BAA2B,UAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAShI"}
|
package/lib/localSetup.js
CHANGED
|
@@ -35,17 +35,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.
|
|
38
|
+
exports.LOCAL_SETUP_TIMEOUT = void 0;
|
|
39
|
+
exports.localSetup = localSetup;
|
|
39
40
|
const dotenv_1 = __importDefault(require("dotenv"));
|
|
40
41
|
dotenv_1.default.config(); // read ".env"
|
|
41
42
|
const selenium_webdriver_1 = require("selenium-webdriver");
|
|
42
|
-
const seUtils_1 = require("./seUtils");
|
|
43
43
|
const log_1 = require("./log");
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
const seUtils_1 = require("./seUtils");
|
|
45
|
+
exports.LOCAL_SETUP_TIMEOUT = process.env.VSCODE_INSPECTOR_OPTIONS ? 999999 : 20000;
|
|
46
|
+
// console.log("LOCAL_SETUP_TIMEOUT: ", LOCAL_SETUP_TIMEOUT);
|
|
47
|
+
// console.log("VSCODE_INSPECTOR_OPTIONS: ", process.env.VSCODE_INSPECTOR_OPTIONS);
|
|
48
|
+
function localSetup(page_1) {
|
|
49
|
+
return __awaiter(this, arguments, void 0, function* (page, width = 500, height = 500, acceptUntrustedCertificates = true) {
|
|
47
50
|
(0, log_1.debug)(() => `localSetup("${page}", ${width}, ${height}, ${acceptUntrustedCertificates}), getWebDriver ...`);
|
|
48
|
-
const driver = yield getWebDriver(acceptUntrustedCertificates);
|
|
51
|
+
const driver = yield getWebDriver(acceptUntrustedCertificates, width, height);
|
|
49
52
|
(0, log_1.verbose)(() => `Driver started, load page: ${page}`);
|
|
50
53
|
yield driver.get(page);
|
|
51
54
|
(0, log_1.debug)(() => `Page loaded, set browser window size: ${width}x${height}`);
|
|
@@ -54,7 +57,6 @@ function localSetup(page, width = 500, height = 500, acceptUntrustedCertificates
|
|
|
54
57
|
return driver;
|
|
55
58
|
});
|
|
56
59
|
}
|
|
57
|
-
exports.localSetup = localSetup;
|
|
58
60
|
/**
|
|
59
61
|
* To be configured in jest setup file via globalSetup as it needs to be run before any tests in all files.
|
|
60
62
|
* Additionally,
|
|
@@ -64,39 +66,44 @@ exports.localSetup = localSetup;
|
|
|
64
66
|
* ```
|
|
65
67
|
* are to be called.
|
|
66
68
|
*/
|
|
67
|
-
function getWebDriver(acceptUntrustedCertificates) {
|
|
69
|
+
function getWebDriver(acceptUntrustedCertificates, width, height) {
|
|
68
70
|
return __awaiter(this, void 0, void 0, function* () {
|
|
69
71
|
const browser = process.env.SEFI_BROWSER || "remote";
|
|
70
72
|
(0, log_1.debug)(() => `Use browser: ${browser}`);
|
|
71
73
|
try {
|
|
72
74
|
if (browser === "chrome") {
|
|
73
|
-
return yield setUpWebDriverChrome(acceptUntrustedCertificates);
|
|
75
|
+
return yield setUpWebDriverChrome(acceptUntrustedCertificates, width, height);
|
|
74
76
|
}
|
|
75
77
|
else if (browser === "firefox") {
|
|
76
|
-
return yield setUpWebDriverFirefox(acceptUntrustedCertificates);
|
|
78
|
+
return yield setUpWebDriverFirefox(acceptUntrustedCertificates, width, height);
|
|
77
79
|
}
|
|
78
80
|
else if (browser === "remote") {
|
|
79
|
-
return yield setUpWebDriverInDocker(acceptUntrustedCertificates);
|
|
81
|
+
return yield setUpWebDriverInDocker(acceptUntrustedCertificates, width, height);
|
|
80
82
|
}
|
|
81
83
|
else {
|
|
82
84
|
throw new Error(`Unknown browser: ${browser}`);
|
|
83
85
|
}
|
|
84
86
|
}
|
|
85
87
|
catch (err) {
|
|
86
|
-
console.error(`Error setting up driver: ${err}`);
|
|
88
|
+
console.error(`Error setting up driver for ${browser}: ${err}`);
|
|
87
89
|
throw err;
|
|
88
90
|
}
|
|
89
91
|
});
|
|
90
92
|
}
|
|
91
|
-
function setUpWebDriverInDocker(acceptUntrustedCertificates) {
|
|
93
|
+
function setUpWebDriverInDocker(acceptUntrustedCertificates, width, height) {
|
|
92
94
|
return __awaiter(this, void 0, void 0, function* () {
|
|
93
|
-
(0, log_1.debug)("Dynamic import of selenium-webdriver/firefox");
|
|
94
|
-
(0, log_1.debug)("Remote browser, load firefox webdriver");
|
|
95
|
+
(0, log_1.debug)("Dynamic import of selenium-webdriver/firefox for remote browser");
|
|
95
96
|
const firefox = yield Promise.resolve().then(() => __importStar(require('selenium-webdriver/firefox')));
|
|
96
|
-
const { address } = (0, seUtils_1.getRemoteAddressAndPort)();
|
|
97
|
+
const { address, port } = (0, seUtils_1.getRemoteAddressAndPort)();
|
|
97
98
|
const start = Date.now();
|
|
98
99
|
const options = new firefox.Options().addArguments("-headless");
|
|
99
100
|
options.setAcceptInsecureCerts(acceptUntrustedCertificates);
|
|
101
|
+
if (width && height) { // cf. https://github.com/SeleniumHQ/selenium/pull/6075
|
|
102
|
+
options.addArguments("--width=" + width);
|
|
103
|
+
options.addArguments("--height=" + height);
|
|
104
|
+
process.env.MOZ_HEADLESS_WIDTH = String(width);
|
|
105
|
+
process.env.MOZ_HEADLESS_HEIGHT = String(height);
|
|
106
|
+
}
|
|
100
107
|
(0, log_1.debug)(() => `Start headless firefox, remote server at ${address}`);
|
|
101
108
|
const driver = yield new selenium_webdriver_1.Builder()
|
|
102
109
|
.usingServer(address)
|
|
@@ -119,14 +126,17 @@ function setUpWebDriverInDocker(acceptUntrustedCertificates) {
|
|
|
119
126
|
* ```
|
|
120
127
|
* are to be called.
|
|
121
128
|
*/
|
|
122
|
-
function setUpWebDriverChrome(acceptUntrustedCertificates) {
|
|
129
|
+
function setUpWebDriverChrome(acceptUntrustedCertificates, width, height) {
|
|
123
130
|
return __awaiter(this, void 0, void 0, function* () {
|
|
124
131
|
(0, log_1.debug)("Dynamic import of chromedriver and selenium-webdriver/chrome");
|
|
125
132
|
//@ts-ignore
|
|
126
133
|
yield Promise.resolve().then(() => __importStar(require('chromedriver')));
|
|
127
134
|
const chrome = yield Promise.resolve().then(() => __importStar(require('selenium-webdriver/chrome')));
|
|
128
|
-
const options = new chrome.Options().addArguments("--headless=new");
|
|
135
|
+
const options = (new chrome.Options().addArguments("--headless=new"));
|
|
129
136
|
options.setAcceptInsecureCerts(acceptUntrustedCertificates);
|
|
137
|
+
if (width && height) { // cf. https://www.geeksforgeeks.org/how-to-set-browser-width-and-height-in-selenium-webdriver/
|
|
138
|
+
options.addArguments("--window-size=" + width + "," + height);
|
|
139
|
+
}
|
|
130
140
|
(0, log_1.debug)(() => `Start headless chrome`);
|
|
131
141
|
const driver = yield new selenium_webdriver_1.Builder()
|
|
132
142
|
.forBrowser('chrome')
|
|
@@ -144,13 +154,20 @@ function setUpWebDriverChrome(acceptUntrustedCertificates) {
|
|
|
144
154
|
* ```
|
|
145
155
|
* are to be called.
|
|
146
156
|
*/
|
|
147
|
-
function setUpWebDriverFirefox(acceptUntrustedCertificates) {
|
|
157
|
+
function setUpWebDriverFirefox(acceptUntrustedCertificates, width, height) {
|
|
148
158
|
return __awaiter(this, void 0, void 0, function* () {
|
|
149
159
|
(0, log_1.debug)("Dynamic import of geckodriver and selenium-webdriver/firefox");
|
|
150
160
|
//@ts-ignore
|
|
151
161
|
yield Promise.resolve().then(() => __importStar(require('geckodriver'))); // installed geckodriver will cause remote configuration to fail in docker...
|
|
152
162
|
const firefox = yield Promise.resolve().then(() => __importStar(require('selenium-webdriver/firefox')));
|
|
153
|
-
const options = new firefox.Options()
|
|
163
|
+
const options = new firefox.Options();
|
|
164
|
+
options.addArguments("-headless");
|
|
165
|
+
if (width && height) { // cf. https://github.com/SeleniumHQ/selenium/pull/6075
|
|
166
|
+
options.addArguments("--width=" + width);
|
|
167
|
+
options.addArguments("--height=" + height);
|
|
168
|
+
process.env.MOZ_HEADLESS_WIDTH = String(width);
|
|
169
|
+
process.env.MOZ_HEADLESS_HEIGHT = String(height);
|
|
170
|
+
}
|
|
154
171
|
options.setAcceptInsecureCerts(acceptUntrustedCertificates);
|
|
155
172
|
(0, log_1.debug)(() => `Start headless firefox`);
|
|
156
173
|
const driver = yield new selenium_webdriver_1.Builder()
|
package/lib/localSetup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localSetup.js","sourceRoot":"","sources":["../src/localSetup.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"localSetup.js","sourceRoot":"","sources":["../src/localSetup.ts"],"names":[],"mappings":"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"}
|
package/lib/localTeardown.js
CHANGED
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.localTeardown =
|
|
12
|
+
exports.localTeardown = localTeardown;
|
|
13
13
|
/**
|
|
14
14
|
* To be called in the afterAll() function of a test suite.
|
|
15
15
|
*/
|
|
@@ -24,5 +24,4 @@ function localTeardown(driver) {
|
|
|
24
24
|
}
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
|
-
exports.localTeardown = localTeardown;
|
|
28
27
|
//# sourceMappingURL=localTeardown.js.map
|
package/lib/localTeardown.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localTeardown.js","sourceRoot":"","sources":["../src/localTeardown.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"localTeardown.js","sourceRoot":"","sources":["../src/localTeardown.ts"],"names":[],"mappings":";;;;;;;;;;;AAKA,sCAQC;AAXD;;GAEG;AACH,SAAsB,aAAa,CAAC,MAAiB;;QACjD,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,8BAA8B;QAClC,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAE9C,CAAC;IACL,CAAC;CAAA"}
|
package/lib/log.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.verbose = verbose;
|
|
4
|
+
exports.debug = debug;
|
|
4
5
|
const logLevel = (process.env.SEFI_LOG_LEVEL || "info").toLowerCase();
|
|
5
6
|
function verbose(msg) {
|
|
6
7
|
if (logLevel == "debug" || logLevel == "verbose") {
|
|
@@ -10,7 +11,6 @@ function verbose(msg) {
|
|
|
10
11
|
console.log(msg);
|
|
11
12
|
}
|
|
12
13
|
}
|
|
13
|
-
exports.verbose = verbose;
|
|
14
14
|
function debug(msg) {
|
|
15
15
|
if (logLevel == "debug") {
|
|
16
16
|
if (msg instanceof Function) {
|
|
@@ -19,5 +19,4 @@ function debug(msg) {
|
|
|
19
19
|
console.log(msg);
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
exports.debug = debug;
|
|
23
22
|
//# sourceMappingURL=log.js.map
|
package/lib/log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":";;AAEA,0BAOC;AAED,sBAOC;AAlBD,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;AAEtE,SAAgB,OAAO,CAAC,GAAQ;IAC5B,IAAI,QAAQ,IAAE,OAAO,IAAI,QAAQ,IAAE,SAAS,EAAE,CAAC;QAC3C,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;YAC1B,GAAG,GAAG,GAAG,EAAE,CAAC;QAChB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;AACL,CAAC;AAED,SAAgB,KAAK,CAAC,GAAQ;IAC1B,IAAI,QAAQ,IAAE,OAAO,EAAE,CAAC;QACpB,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;YAC1B,GAAG,GAAG,GAAG,EAAE,CAAC;QAChB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;AACL,CAAC"}
|
package/lib/seUtils.d.ts
CHANGED
|
@@ -246,4 +246,8 @@ export declare function findBestMatchingIndex(candidates: string[], variations:
|
|
|
246
246
|
*/
|
|
247
247
|
export declare function getInputElementByLabel(driver: WebDriver, labelCandidates: string[], typeHints: string[], positionHint?: number, findSelectAsWell?: boolean): Promise<WebElement | undefined>;
|
|
248
248
|
export declare function editDistance(a: string, b: string, maxDistance: number): number;
|
|
249
|
+
/**
|
|
250
|
+
* Returns true if the two web elements are equal, i.e. have the same id or same tag, location, and size.
|
|
251
|
+
*/
|
|
252
|
+
export declare function equalWebElements(a: WebElement | null | undefined, b: WebElement | null | undefined): Promise<boolean>;
|
|
249
253
|
//# sourceMappingURL=seUtils.d.ts.map
|
package/lib/seUtils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seUtils.d.ts","sourceRoot":"","sources":["../src/seUtils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"seUtils.d.ts","sourceRoot":"","sources":["../src/seUtils.ts"],"names":[],"mappings":"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"}
|