`waitFor` utils are not wrapped in `act` so some state updates are not applied to the DOM
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- javascript, react
Rechercherichtung
Beginne mit dem async wrapper, der an die DOM Testing Library übergeben wird, und der in App.test.tsx gezeigten Verwendung von waitForElementToBeRemoved. Prüfe den verlinkten Commit, der den direkten act-Aufruf entfernt hat, und verwende die StackBlitz-Reproduktion, um zu verifizieren, dass das abschließende Zustandsupdate ohne ein explizites async act auf das DOM angewendet wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
@testing-library/reactversion: 16.3.0- Testing Framework and version: jest 30.1.3
- DOM Environment: jsdom 26.1.0
Relevant code or config:
test('it loads', async () => {
render(<App />);
await waitForElementToBeRemoved(screen.queryByRole('progressbar'));
// Commenting this out fails the test
// await act(() => new Promise((r) => setTimeout(r, 0)));
expect(screen.getByText('Loaded')).toBeDefined();
});
What you did:
Upgrading to React 18 along with react testing library v14, I found that some of my tests were now failing unless I add an explicit async act.
Digging into it, it seems to be this change to the async wrapper passed to the dom testing library where it no longer directly calls act, so state updates from the final iteration of the waitFor are not flushed to the DOM.
It looks like it only flushes the microtask queue, which won't give react an opportunity to process this state update.
Reproduction:
I'm using React 18 and RTL 14 but I've reproduced it on React 19 and RTL 16.
https://stackblitz.com/edit/rtl-template-4a3jt9jx?file=src%2FApp.test.tsx&view=editor
Suggested solution:
I don't have enough knowledge of the codebase to understand why the call to act was removed.
- Vorherrschende Sprache
- JavaScript
- Sterne
- 19.7k
- Forks
- 1.2k
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus testing-library/react-testing-library
-
fireEvent.select does not wrap its automatic native focus in actEvtl. vergeben @sergioperezcheco hat das vor 18 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
-
bug: calling configure() without reactStrictMode resets it to undefined, silently disabling strict modeEvtl. wieder frei @suhailopensource hat das vor 88 Tagen übernommen, und es ist kein Pull Request offen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 35/100
testing-library/react-testing-library#1466 · 1 Kommentar ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 30/100
testing-library/react-testing-library#1459 · 2 Kommentare ·
-
perf: optimize container lookup with early exitEvtl. wieder frei @Ch-Abhinav-Chowdary hat das vor 314 Tagen übernommen, und es ist kein Pull Request offen. Offen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 35/100
testing-library/react-testing-library#1430 · 1 Kommentar ·
-
`fireEvent.mouseEnter` does not forward `relatedTarget` (relatedTarget is the window instead)Evtl. vergeben @swarnim02 hat das vor 331 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
Alle Issues in testing-library/react-testing-library
Ähnliche Issues
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 70/100
Maintainer antworten meist innerhalb von 1 Tag
-
Add: Story4 CZOffencheck:passed logos:add
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 70/100
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
adobe/helix-shared#1310 ·
Maintainer antworten meist innerhalb von 1 Tag
-
[workshop-sim] Improve: Strengthen practice and checkpoints in Step 05 (What Are Agentic Workflows?)Offenfeedback simulation workshop
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
githubnext/gh-aw-workshop#4972 ·
Maintainer antworten meist innerhalb von 1 Tag
-
agent/ci-maintainer ci good first issue help wanted stage/010-actionable
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 80/100
cncf/endusers#1890 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag