Merge pull request #20313 from backstage/rugvip/e2e-fix

e2e: update stderr filtering, only log filtered lines
This commit is contained in:
Patrik Oldsberg
2023-10-02 16:12:20 +02:00
committed by GitHub
+22 -28
View File
@@ -443,41 +443,35 @@ async function testBackendStart(appDir: string, ...args: string[]) {
});
let successful = false;
const stdErrorHasErrors = (input: string) => {
const filterStderr = (input: string) => {
const lines = input.split('\n').filter(Boolean);
return (
lines.filter(
l =>
!l.includes('Use of deprecated folder mapping') &&
!l.includes('Update this package.json to use a subpath') &&
!l.includes(
'(Use `node --trace-deprecation ...` to show where the warning was created)',
) &&
// These 4 are all for the AWS SDK v2 deprecation
!l.includes(
'The AWS SDK for JavaScript (v2) will be put into maintenance mode',
) &&
!l.includes(
'Please migrate your code to use AWS SDK for JavaScript',
) &&
!l.includes('check the migration guide at https://a.co/7PzMCcy') &&
!l.includes(
'(Use `node --trace-warnings ...` to show where the warning was created)',
) &&
!l.includes('Custom ESM Loaders is an experimental feature') &&
!l.includes(
'ExperimentalWarning: `globalPreload` is planned for removal',
),
).length !== 0
return lines.filter(
l =>
!l.includes(
'ExperimentalWarning: Custom ESM Loaders is an experimental feature', // Node 16
) &&
!l.includes(
'ExperimentalWarning: `--experimental-loader` may be removed in the future;', // Node 18
) &&
!l.includes("--import 'data:text/javascript,import") && // the new --experimental-loader replacement warning, printed after the above, Node 18
!l.includes(
'ExperimentalWarning: `globalPreload` is planned for removal in favor of `initialize`.', // Node 18
) &&
!l.includes('node --trace-warnings ...'),
);
};
try {
await waitFor(
() => stdout.includes('Listening on ') || stdErrorHasErrors(stderr),
() => stdout.includes('Listening on ') || filterStderr(stderr).length > 0,
);
if (stdErrorHasErrors(stderr)) {
print(`Expected stderr to be clean, got ${stderr}`);
const stderrLines = filterStderr(stderr);
if (stderrLines.length > 0) {
print(
`Expected stderr to be clean, got ${stderr} \n\nThe following lines were unexpected:\n${stderrLines.join(
'\n',
)}`,
);
// Skipping the whole block
throw new Error(stderr);
}