@brillout/test-e2e 0.4.9 → 0.4.11
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/dist/runTests.js +18 -5
- package/dist/setup.js +10 -5
- package/package.json +1 -1
package/dist/runTests.js
CHANGED
|
@@ -16,10 +16,12 @@ const buildTs_1 = require("./buildTs");
|
|
|
16
16
|
const findTestFiles_1 = require("./findTestFiles");
|
|
17
17
|
const getConfig_1 = require("./getConfig");
|
|
18
18
|
const logError_1 = require("./logError");
|
|
19
|
+
let hasFailure = false;
|
|
19
20
|
async function runTests(filter) {
|
|
20
21
|
await (0, getConfig_1.loadConfig)();
|
|
21
22
|
const testFiles = await (0, findTestFiles_1.findTestFiles)(filter);
|
|
22
23
|
const browser = await (0, getBrowser_1.getBrowser)();
|
|
24
|
+
let hasFailedTest = false;
|
|
23
25
|
for (const testFile of testFiles) {
|
|
24
26
|
(0, utils_1.assert)(testFile.endsWith('.ts'));
|
|
25
27
|
const testFileJs = testFile.replace('.ts', '.mjs');
|
|
@@ -31,11 +33,20 @@ async function runTests(filter) {
|
|
|
31
33
|
finally {
|
|
32
34
|
clean();
|
|
33
35
|
}
|
|
34
|
-
await runTestFile(browser);
|
|
36
|
+
const success = await runTestFile(browser);
|
|
37
|
+
if (!success) {
|
|
38
|
+
hasFailedTest = true;
|
|
39
|
+
}
|
|
35
40
|
(0, getCurrentTest_2.setCurrentTest)(null);
|
|
36
41
|
(0, utils_1.assert)(testFileJs.endsWith('.mjs'));
|
|
37
42
|
}
|
|
38
43
|
await browser.close();
|
|
44
|
+
if (hasFailedTest || hasFailure) {
|
|
45
|
+
// hasFailedTest and hasFailure are redundant
|
|
46
|
+
// - When assert.ts calls logFailure() this code block isn't run
|
|
47
|
+
(0, utils_1.assert)(hasFailedTest && hasFailure);
|
|
48
|
+
throw new Error('A test failed. See messages above.');
|
|
49
|
+
}
|
|
39
50
|
}
|
|
40
51
|
exports.runTests = runTests;
|
|
41
52
|
async function runTestFile(browser) {
|
|
@@ -51,7 +62,7 @@ async function runTestFile(browser) {
|
|
|
51
62
|
logTestStatus(false);
|
|
52
63
|
(0, utils_1.assertUsage)(!testInfo.runInfo, 'You cannot call `run()` after calling `skip()`');
|
|
53
64
|
(0, utils_1.assertUsage)(testInfo.tests === undefined, 'You cannot call `test()` after calling `skip()`');
|
|
54
|
-
return;
|
|
65
|
+
return true;
|
|
55
66
|
}
|
|
56
67
|
// Set when user calls `run()`
|
|
57
68
|
(0, utils_1.assert)(testInfo.runInfo);
|
|
@@ -77,7 +88,7 @@ async function runTestFile(browser) {
|
|
|
77
88
|
(0, logError_1.logError)(err);
|
|
78
89
|
Logs_1.Logs.flushLogs();
|
|
79
90
|
await abort();
|
|
80
|
-
return;
|
|
91
|
+
return false;
|
|
81
92
|
}
|
|
82
93
|
for (const { testDesc, testFn } of testInfo.tests) {
|
|
83
94
|
Logs_1.Logs.add({
|
|
@@ -112,7 +123,7 @@ async function runTestFile(browser) {
|
|
|
112
123
|
Logs_1.Logs.logErrors(failOnWarning);
|
|
113
124
|
Logs_1.Logs.flushLogs();
|
|
114
125
|
await abort();
|
|
115
|
-
return;
|
|
126
|
+
return false;
|
|
116
127
|
}
|
|
117
128
|
}
|
|
118
129
|
Logs_1.Logs.clearLogs();
|
|
@@ -128,11 +139,12 @@ async function runTestFile(browser) {
|
|
|
128
139
|
Logs_1.Logs.logErrors(failOnWarning);
|
|
129
140
|
Logs_1.Logs.flushLogs();
|
|
130
141
|
await abort();
|
|
131
|
-
return;
|
|
142
|
+
return false;
|
|
132
143
|
}
|
|
133
144
|
}
|
|
134
145
|
Logs_1.Logs.clearLogs();
|
|
135
146
|
logTestStatus(true);
|
|
147
|
+
return true;
|
|
136
148
|
}
|
|
137
149
|
function getErrorType(failOnWarning) {
|
|
138
150
|
return !failOnWarning ? 'error(s)' : 'error(s)/warning(s)';
|
|
@@ -178,6 +190,7 @@ function logTestStatus(success) {
|
|
|
178
190
|
}
|
|
179
191
|
}
|
|
180
192
|
function logFailure(reason) {
|
|
193
|
+
hasFailure = true;
|
|
181
194
|
logTestStatus(false);
|
|
182
195
|
const { FAIL } = getStatusTags();
|
|
183
196
|
const color = (s) => picocolors_1.default.red(picocolors_1.default.bold(s));
|
package/dist/setup.js
CHANGED
|
@@ -243,7 +243,7 @@ function stopProcess({ proc, cwd, cmd, force, }) {
|
|
|
243
243
|
// [15:36:10.626][\examples\react][npm run preview][stderr] ELIFECYCLE
|
|
244
244
|
// ```
|
|
245
245
|
// Because stderr isn't empty, runTests() believes that the termination failed.
|
|
246
|
-
// - taskkill
|
|
246
|
+
// - taskkill sometimes throws:
|
|
247
247
|
// ```
|
|
248
248
|
// ERROR: The process with PID 6052 (child process of PID 3184) could not be terminated.
|
|
249
249
|
// Reason: There is no running instance of the task.
|
|
@@ -254,8 +254,13 @@ function stopProcess({ proc, cwd, cmd, force, }) {
|
|
|
254
254
|
// There doesn't seem to be an option to suppress these errors: https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/taskkill#parameters
|
|
255
255
|
(0, child_process_1.spawn)('taskkill', ['/pid', String(proc.pid), '/f', '/t'], {
|
|
256
256
|
stdio: [
|
|
257
|
-
'
|
|
258
|
-
|
|
257
|
+
'ignore',
|
|
258
|
+
// Ignore:
|
|
259
|
+
// ```
|
|
260
|
+
// SUCCESS: The process with PID 6932 (child process of PID 2744) has been terminated.
|
|
261
|
+
// ```
|
|
262
|
+
// (Setting 'inherit' instead of 'ignore' attaches stdout to the root process and not to `proc` which is why the stdout of taskkill isn't intercepted by `proc.stdout.on('data', () => /* ... */)`.
|
|
263
|
+
'ignore',
|
|
259
264
|
// Ignoring stderr doesn't solve the problem that taskkill makes the process exit with code 1
|
|
260
265
|
'inherit', // stderr
|
|
261
266
|
],
|
|
@@ -318,7 +323,7 @@ function execRunScript({ onStdout, onFailure, onExit, }) {
|
|
|
318
323
|
logSource: 'stdout',
|
|
319
324
|
logText: data,
|
|
320
325
|
});
|
|
321
|
-
/* These assertions sometimes
|
|
326
|
+
/* These assertions sometimes fail, see comments in assertNotExited()
|
|
322
327
|
assertNotExited(data)
|
|
323
328
|
assert(getRunInfo().cmd === cmd)
|
|
324
329
|
/*/
|
|
@@ -333,7 +338,7 @@ function execRunScript({ onStdout, onFailure, onExit, }) {
|
|
|
333
338
|
logSource: 'stderr',
|
|
334
339
|
logText: data,
|
|
335
340
|
});
|
|
336
|
-
/* These assertions sometimes
|
|
341
|
+
/* These assertions sometimes fail, see comments in assertNotExited()
|
|
337
342
|
assertNotExited(data)
|
|
338
343
|
assert(getRunInfo().cmd === cmd)
|
|
339
344
|
/*/
|