post-upgrade, unexpected assertion failures on error-handling function calls (includes repro)
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Bug
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- javascript, react
Rechercherichtung
Beginne mit der verlinkten CRA-Reproduktion und untersuche die im Issue gezeigte Abfolge der Assertions für render, findByText und mockLog. Bestätige das Timing-Verhalten nach dem Upgrade und dokumentiere, warum das Warten auf den gerenderten Fehler nicht beweist, dass der auf einem Effect basierende Logging-Aufruf abgeschlossen ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
@testing-library/reactversion: 13.4.0- Testing Framework and version: [email protected]
- DOM Environment: [email protected]
- node: 16.14.2
- react: 18.2.0
Relevant code or config:
render(<App />);
await screen.findByText('Failed!');
//assertion fails unless we `waitFor` it
expect(mockLog).toHaveBeenCalledWith('kaboom!')
What you did:
Upgraded existing application to react 18+ and RTL 13+.
What happened:
A number of tests starting failing assertions after upgrading.
In this case, the component is rendered with a simulated fetch failure. The component renders a child component that is responsible for error presentation and minor logging (in an effect hook). The test assertion on the logging function call fails unless it is awaited.
Reproduction:
I was able to reproduce the issue with a simple CRA repo, here: https://github.com/trv-wcaneira/fetch-err-waitfor-mcve
Problem description:
Pre-upgrade, it was sufficient to await the error message text rendered by the child component. Now it seems additional waiting is needed, and before I plaster waitFors all over our tests 😄, I'd just like to understand why.
Suggested solution:
I could obviously change all the tests to waitFor the logging function call, but would like to understand the change in behavior.
- 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 9 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 80 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 306 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 323 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
Alle Issues in testing-library/react-testing-library
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
apache/rocketmq-dashboard#6896 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
bug engine
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
frostney/GocciaScript#1746 ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 67/100
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
SasanLabs/VulnerableApp#836 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
keyxmakerx/Chronicle#1469 ·
Maintainer antworten meist innerhalb von 1 Tag