Having `afterEach(cleanup)` in the test setup file breaks exported `screen` module on Bun test
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 50/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- react, typescript
- Bereich
- frontend, testing-qa
Rechercherichtung
Beginne damit, bun test --preload test.setup.ts mit test.setup.ts und Component.spec.tsx wie gezeigt auszuführen. Verfolge, wie afterEach(cleanup) mit dem exportierten screen und dem von render verwendeten Dokument interagiert. Als abgeschlossen gilt die Aufgabe, wenn die Reproduktion screen aus dem Export verwenden und gleichzeitig das Cleanup auf Setup-Ebene beibehalten kann, mit einem Regressionstest, der Bun abdeckt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
@testing-library/reactversion:15.0.7- Testing Framework and version:
Bun test v1.1.21 - DOM Environment:
@happy-dom/[email protected]
Relevant code or config:
test.setup.ts
import { GlobalRegistrator } from '@happy-dom/global-registrator';
import { cleanup } from '@testing-library/react';
import { expect, afterEach } from 'bun:test';
import * as matchers from '@testing-library/jest-dom/matchers';
GlobalRegistrator.register();
declare module 'bun:test' {
interface Matchers<T> extends matchers.TestingLibraryMatchers<any, void> {}
interface AsymmetricMatchers extends matchers.TestingLibraryMatchers<any, void> {}
}
expect.extend(matchers);
afterEach(cleanup);
Component.spec.tsx
import { act, render, screen } from '@testing-library/react';
import { TextAreaInput } from './TextAreaInput.component';
import { describe, it } from 'bun:test';
describe('TextAreaInput', () => {
it('Should show in the DOM', async () => {
const { getByRole } = await act(() => render(<TextAreaInput />));
// Works fine!
getByRole('textbox')
// throws an error
screen.getByRole('textbox');
// TypeError: For queries bound to document.body a global document has to be available... Learn more: https://testing-library.com/s/screen-global-error
});
});
What you did:
I'm just trying to test a component using the screen exported by react testing library using Bun test.
What happened:
everything was smooth, until I tried to use the screen exported from the react testing library it threw an error about "global document has to be available",
upon inspecting, removing afterEach(cleanup) from the test setup file or writing afterEach(cleanup) in each test file will make it works,
Reproduction:
just run bun test --preload test.setup.ts
Problem description:
using the screen exported while having the cleanup code in the test setup will break the test
Suggested solution:
just use the returned screen from the render function.
- 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 6 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 77 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 303 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 320 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
Alle Issues in testing-library/react-testing-library
Ähnliche Issues
-
[scanner] check:spelling skips blog/ — posts and author metadata are never spell-checkedEvtl. vergeben @hivecommons-hive hat das heute übernommen. Offenagent/scanner bug hive/covered-by-pr hive/hosted-available-lke648397-260827-5n31
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 72/100
cncf/endusers#1452 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Edit: HTVKey.vnOffenchannels:edit check:passed
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 6 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
-
beginner bug
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
hiero-ledger/hiero-sdk-js#4517 ·
Maintainer antworten meist innerhalb von 1 Tag
-
`timer` rule rejects dates the engine acceptsEvtl. vergeben @MFA-G hat das heute übernommen. Offenbug ready
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
camunda/bpmnlint-plugin-camunda-compat#281 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag