fix: missing act() in flowchart tests (#8354)

This commit is contained in:
David Luzar 2024-08-09 17:27:02 +02:00 committed by GitHub
parent d5f4ee7b3f
commit 1ea5b26f25
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 15 additions and 10 deletions

View file

@ -5,6 +5,7 @@ import fs from "fs";
import { vi } from "vitest";
import polyfill from "./packages/excalidraw/polyfill";
import { testPolyfills } from "./packages/excalidraw/tests/helpers/polyfills";
import { yellow } from "./packages/excalidraw/tests/helpers/colorize";
Object.assign(globalThis, testPolyfills);
@ -98,18 +99,20 @@ const element = document.createElement("div");
element.id = "root";
document.body.appendChild(element);
const logger = console.error.bind(console);
const _consoleError = console.error.bind(console);
console.error = (...args) => {
// the react's act() warning usually doesn't contain any useful stack trace
// so we're catching the log and re-logging the message with the test name,
// also stripping the actual component stack trace as it's not useful
if (args[0]?.includes("act(")) {
logger(
`<<< WARNING: test "${
expect.getState().currentTestName
}" does not wrap some state update in act() >>>`,
_consoleError(
yellow(
`<<< WARNING: test "${
expect.getState().currentTestName
}" does not wrap some state update in act() >>>`,
),
);
} else {
logger(...args);
_consoleError(...args);
}
};