@brillout/test-e2e 0.6.14 → 0.6.15-commit-acebd7f
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/Logs/isTolerateError.d.ts +7 -0
- package/dist/Logs/isTolerateError.js +9 -4
- package/dist/fetch.d.ts +2 -3
- package/dist/fetch.js +7 -18
- package/dist/getConfig.d.ts +2 -1
- package/dist/getCurrentTest.d.ts +6 -5
- package/dist/getCurrentTest.js +2 -2
- package/dist/index.d.ts +1 -0
- package/dist/run.d.ts +3 -2
- package/dist/run.js +2 -2
- package/dist/runAll.js +4 -4
- package/dist/utils/runCommand.js +1 -0
- package/package.json +1 -3
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
export { isTolerateError };
|
|
2
|
+
export type { TolerateError };
|
|
3
|
+
import { type TestInfo } from '../getCurrentTest.js';
|
|
2
4
|
import type { LogSource } from '../Logs.js';
|
|
3
5
|
type LogData = {
|
|
4
6
|
logSource: LogSource;
|
|
5
7
|
logText: string;
|
|
6
8
|
};
|
|
9
|
+
type TolerateError = true | ((args: {
|
|
10
|
+
logSource: LogSource;
|
|
11
|
+
logText: string;
|
|
12
|
+
testInfo: null | TestInfo;
|
|
13
|
+
}) => boolean | undefined);
|
|
7
14
|
declare function isTolerateError({ logSource, logText }: LogData): boolean;
|
|
@@ -8,13 +8,18 @@ function isTolerateError({ logSource, logText }) {
|
|
|
8
8
|
return true;
|
|
9
9
|
}
|
|
10
10
|
const testInfo = getCurrentTestOptional();
|
|
11
|
+
const isTolerated = (tolerateError) => {
|
|
12
|
+
if (tolerateError === true)
|
|
13
|
+
return true;
|
|
14
|
+
if (tolerateError?.({ logSource, logText, testInfo })) {
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
11
18
|
const config = getConfig();
|
|
12
|
-
|
|
13
|
-
if (tolerateError === true)
|
|
19
|
+
if (isTolerated(config.tolerateError))
|
|
14
20
|
return true;
|
|
15
|
-
if (
|
|
21
|
+
if (isTolerated(testInfo?.runInfo?.tolerateError))
|
|
16
22
|
return true;
|
|
17
|
-
}
|
|
18
23
|
return false;
|
|
19
24
|
}
|
|
20
25
|
function tolerateErrorBuiltIn({ logSource, logText }) {
|
package/dist/fetch.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
export { fetch };
|
|
1
|
+
export { fetchAndLogError as fetch };
|
|
2
2
|
export { fetchHtml };
|
|
3
|
-
import type { RequestInfo, RequestInit, Response } from 'node-fetch';
|
|
4
3
|
declare function fetchHtml(pathname: string): Promise<string>;
|
|
5
|
-
declare function
|
|
4
|
+
declare function fetchAndLogError(...args: Parameters<typeof fetch>): Promise<Response>;
|
package/dist/fetch.js
CHANGED
|
@@ -1,33 +1,22 @@
|
|
|
1
|
-
export { fetch };
|
|
1
|
+
export { fetchAndLogError as fetch };
|
|
2
2
|
export { fetchHtml };
|
|
3
3
|
import { getServerUrl } from './getCurrentTest.js';
|
|
4
|
-
import fetch_ from 'node-fetch';
|
|
5
4
|
import { Logs } from './Logs.js';
|
|
6
5
|
async function fetchHtml(pathname) {
|
|
7
|
-
const response = await
|
|
6
|
+
const response = await fetchAndLogError(getServerUrl() + pathname);
|
|
8
7
|
const html = await response.text();
|
|
9
8
|
return html;
|
|
10
9
|
}
|
|
11
|
-
async function
|
|
10
|
+
async function fetchAndLogError(...args) {
|
|
12
11
|
try {
|
|
13
|
-
|
|
14
|
-
//
|
|
15
|
-
// I don't know why but [transition to ESM](https://github.com/brillout/test-e2e/commit/9b0822a4f5bf787de5a150173f3eeffcfa7ebc5c) broke the default importing of the node-fetch types.
|
|
16
|
-
//
|
|
17
|
-
// The following used to work but doens't anymore:
|
|
18
|
-
// ```js
|
|
19
|
-
// async function fetch(...args: Parameters<typeof fetch_>) {
|
|
20
|
-
// // ...
|
|
21
|
-
// }
|
|
22
|
-
// ```
|
|
23
|
-
return await fetch_(url, init);
|
|
12
|
+
return await fetch(...args);
|
|
24
13
|
}
|
|
25
14
|
catch (err) {
|
|
15
|
+
const url = args[0];
|
|
16
|
+
const init = args[1];
|
|
26
17
|
Logs.add({
|
|
27
18
|
logSource: 'Connection Error',
|
|
28
|
-
logText: `Couldn't connect to \`${url}\`. Args: \`${JSON.stringify(init)}\`. Err: \`${
|
|
29
|
-
// @ts-ignore
|
|
30
|
-
err.message}\``,
|
|
19
|
+
logText: `Couldn't connect to \`${url}\`. Args: \`${JSON.stringify(init)}\`. Err: \`${err.message}\``,
|
|
31
20
|
});
|
|
32
21
|
throw new Error("Couldn't connect to server. See `Connection Error` log for more details.");
|
|
33
22
|
}
|
package/dist/getConfig.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export { getConfig };
|
|
2
2
|
export { loadConfig };
|
|
3
3
|
import type { LaunchOptions } from 'playwright-chromium';
|
|
4
|
+
import type { TolerateError } from './Logs/isTolerateError.js';
|
|
4
5
|
type Config = {
|
|
5
|
-
tolerateError?:
|
|
6
|
+
tolerateError?: TolerateError;
|
|
6
7
|
ci?: never;
|
|
7
8
|
chromiumLaunchOptions?: LaunchOptions;
|
|
8
9
|
};
|
package/dist/getCurrentTest.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export { getCwd };
|
|
|
7
7
|
export { getServerUrl };
|
|
8
8
|
export type { TestInfo };
|
|
9
9
|
import type { Page } from 'playwright-chromium';
|
|
10
|
+
import type { TolerateError } from './Logs/isTolerateError.js';
|
|
10
11
|
type TestInfo = {
|
|
11
12
|
testFile: string;
|
|
12
13
|
testName: string;
|
|
@@ -16,14 +17,14 @@ type TestInfo = {
|
|
|
16
17
|
testFn: Function;
|
|
17
18
|
}[];
|
|
18
19
|
testOptions?: {
|
|
19
|
-
|
|
20
|
+
tolerateError?: TolerateError;
|
|
20
21
|
testFunctionTimeout: number;
|
|
21
22
|
isFlaky: boolean;
|
|
22
23
|
};
|
|
23
24
|
runInfo?: {
|
|
24
25
|
cmd: string;
|
|
25
26
|
serverUrl: string;
|
|
26
|
-
|
|
27
|
+
tolerateError?: TolerateError;
|
|
27
28
|
testFunctionTimeout: number;
|
|
28
29
|
isFlaky: boolean;
|
|
29
30
|
isRunCommandThatTerminates: boolean;
|
|
@@ -44,16 +45,16 @@ declare function setCurrentTest(testFile: null | string): void;
|
|
|
44
45
|
declare function getRunInfo(): {
|
|
45
46
|
cmd: string;
|
|
46
47
|
serverUrl: string;
|
|
47
|
-
|
|
48
|
+
tolerateError?: TolerateError | undefined;
|
|
48
49
|
testFunctionTimeout: number;
|
|
49
50
|
isFlaky: boolean;
|
|
50
51
|
isRunCommandThatTerminates: boolean;
|
|
51
52
|
};
|
|
52
|
-
declare function setRunInfo({ cmd, serverUrl, additionalTimeout,
|
|
53
|
+
declare function setRunInfo({ cmd, serverUrl, additionalTimeout, tolerateError, isFlaky, isRunCommandThatTerminates, }: {
|
|
53
54
|
cmd: string;
|
|
54
55
|
serverUrl?: string;
|
|
55
56
|
additionalTimeout?: number;
|
|
56
|
-
|
|
57
|
+
tolerateError?: TolerateError;
|
|
57
58
|
isFlaky?: boolean;
|
|
58
59
|
isRunCommandThatTerminates?: boolean;
|
|
59
60
|
}): void;
|
package/dist/getCurrentTest.js
CHANGED
|
@@ -48,14 +48,14 @@ function getRunInfo() {
|
|
|
48
48
|
return testInfo.runInfo;
|
|
49
49
|
}
|
|
50
50
|
const serverUrlDefault = 'http://localhost:3000';
|
|
51
|
-
function setRunInfo({ cmd, serverUrl = serverUrlDefault, additionalTimeout = 0,
|
|
51
|
+
function setRunInfo({ cmd, serverUrl = serverUrlDefault, additionalTimeout = 0, tolerateError, isFlaky = false, isRunCommandThatTerminates = false, }) {
|
|
52
52
|
const testInfo = getCurrentTest();
|
|
53
53
|
const testFunctionTimeout = TIMEOUT_TEST_FUNCTION + additionalTimeout;
|
|
54
54
|
testInfo.runInfo = {
|
|
55
55
|
cmd,
|
|
56
56
|
serverUrl,
|
|
57
57
|
testFunctionTimeout,
|
|
58
|
-
|
|
58
|
+
tolerateError,
|
|
59
59
|
isFlaky,
|
|
60
60
|
isRunCommandThatTerminates,
|
|
61
61
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -13,3 +13,4 @@ export { skip } from './skip.js';
|
|
|
13
13
|
export { isMinNodeVersion, isCI, isLinux, isWindows, isMac, sleep } from './utils.js';
|
|
14
14
|
export { getServerUrl } from './getCurrentTest.js';
|
|
15
15
|
export { runCommandThatTerminates } from './runCommandThatTerminates.js';
|
|
16
|
+
export type { TolerateError } from './Logs/isTolerateError.js';
|
package/dist/run.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
export { run };
|
|
2
|
-
|
|
2
|
+
import type { TolerateError } from './Logs/isTolerateError.js';
|
|
3
|
+
declare function run(cmd: string, { additionalTimeout, serverIsReadyMessage, serverIsReadyDelay, inspect, cwd, tolerateError, serverUrl, isFlaky, }?: {
|
|
3
4
|
additionalTimeout?: number;
|
|
4
5
|
serverIsReadyMessage?: string | ((log: string) => boolean);
|
|
5
6
|
serverIsReadyDelay?: number;
|
|
6
7
|
inspect?: boolean;
|
|
7
8
|
/** deprecated */
|
|
8
9
|
cwd?: string;
|
|
9
|
-
|
|
10
|
+
tolerateError?: TolerateError;
|
|
10
11
|
serverUrl?: string;
|
|
11
12
|
isFlaky?: boolean;
|
|
12
13
|
}): void;
|
package/dist/run.js
CHANGED
|
@@ -8,14 +8,14 @@ import { page } from './page.js';
|
|
|
8
8
|
import { TIMEOUT_NPM_SCRIPT, TIMEOUT_PLAYWRIGHT, TIMEOUT_PROCESS_TERMINATION } from './TIMEOUTS.js';
|
|
9
9
|
function run(cmd, {
|
|
10
10
|
//baseUrl = '',
|
|
11
|
-
additionalTimeout = 0, serverIsReadyMessage, serverIsReadyDelay = 1000, inspect = cliOptions.inspect, cwd,
|
|
11
|
+
additionalTimeout = 0, serverIsReadyMessage, serverIsReadyDelay = 1000, inspect = cliOptions.inspect, cwd, tolerateError, serverUrl, isFlaky, } = {}) {
|
|
12
12
|
assert(cwd === undefined);
|
|
13
13
|
additionalTimeout += serverIsReadyDelay;
|
|
14
14
|
setRunInfo({
|
|
15
15
|
cmd,
|
|
16
16
|
serverUrl,
|
|
17
17
|
additionalTimeout,
|
|
18
|
-
|
|
18
|
+
tolerateError,
|
|
19
19
|
isFlaky,
|
|
20
20
|
});
|
|
21
21
|
if (inspect) {
|
package/dist/runAll.js
CHANGED
|
@@ -184,10 +184,9 @@ async function runTests(testInfo, isFinalAttempt) {
|
|
|
184
184
|
done(!!err);
|
|
185
185
|
testInfo.afterEach(!!err);
|
|
186
186
|
{
|
|
187
|
-
const failOnWarning = !testInfo.runInfo.doNotFailOnWarning;
|
|
188
187
|
const isFailureFromLogs = Logs.hasFailureLog({
|
|
189
|
-
includeBrowserWarnings:
|
|
190
|
-
includeStderr:
|
|
188
|
+
includeBrowserWarnings: true,
|
|
189
|
+
includeStderr: true,
|
|
191
190
|
});
|
|
192
191
|
const isFailure = err || isFailureFromLogs;
|
|
193
192
|
if (isFailure) {
|
|
@@ -208,7 +207,8 @@ async function runTests(testInfo, isFinalAttempt) {
|
|
|
208
207
|
logFailure(err, `the test "${testDesc}" threw an error`, isFinalAttempt);
|
|
209
208
|
}
|
|
210
209
|
else {
|
|
211
|
-
assert(Logs.hasFailureLog({ includeBrowserWarnings:
|
|
210
|
+
assert(Logs.hasFailureLog({ includeBrowserWarnings: true, includeStderr: true }));
|
|
211
|
+
const failOnWarning = testInfo.runInfo.tolerateError !== true;
|
|
212
212
|
logFailure(null, `${getErrorType(failOnWarning)} occurred while running the test "${testDesc}"`, isFinalAttempt);
|
|
213
213
|
}
|
|
214
214
|
return false;
|
package/dist/utils/runCommand.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brillout/test-e2e",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.15-commit-acebd7f",
|
|
4
4
|
"bin": "./bin.js",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
"chai": "^4.3.6",
|
|
11
11
|
"esbuild": "^0.23.0",
|
|
12
12
|
"fast-glob": "^3.2.12",
|
|
13
|
-
"node-fetch": "^2.6.1",
|
|
14
13
|
"pixelmatch": "^5.3.0",
|
|
15
14
|
"playwright-chromium": "^1.22.2",
|
|
16
15
|
"pngjs": "^6.0.0",
|
|
@@ -22,7 +21,6 @@
|
|
|
22
21
|
"@brillout/release-me": "^0.4.3",
|
|
23
22
|
"@types/chai": "^4.3.3",
|
|
24
23
|
"@types/node": "^15.6.1",
|
|
25
|
-
"@types/node-fetch": "^2.5.12",
|
|
26
24
|
"@types/pixelmatch": "^5.2.4",
|
|
27
25
|
"@types/pngjs": "^6.0.1",
|
|
28
26
|
"@types/source-map-support": "^0.5.6",
|