bug: calling configure() without reactStrictMode resets it to undefined, silently disabling strict mode
@suhailopensource arbeitet bereits daran.
Seit 29.7.2026.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- javascript
- Bereich
- testing
Rechercherichtung
Beginne in src/config.js bei configure() und prüfe anschließend, wie getConfig() den gespeicherten Wert von reactStrictMode bereitstellt. Die Korrektur ist abgeschlossen, wenn ein späterer configure()-Aufruf, der reactStrictMode weglässt, die vorherige Einstellung beibehält, einschließlich des im Reproduktionsbeispiel beschriebenen Falls mit einem Plain Object.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Bug
Calling configure() with any config object that omits reactStrictMode silently resets the previously-configured strict mode flag to undefined.
Root cause
In src/config.js:
function configure(newConfig) {
if (typeof newConfig === 'function') {
newConfig = newConfig(getConfig())
}
const {reactStrictMode, ...configForDTL} = newConfig
configureDTL(configForDTL)
configForRTL = {
...configForRTL,
reactStrictMode, // <-- always overwrites, even when undefined
}
}
When newConfig does not include a reactStrictMode key, destructuring yields reactStrictMode = undefined. The spread ...configForRTL correctly carries the previously saved value, but the explicit reactStrictMode property after it overwrites it with undefined.
Reproduction
import { configure, getConfig } from '@testing-library/react'
// Enable strict mode
configure({ reactStrictMode: true })
console.log(getConfig().reactStrictMode) // true ✓
// Later, an unrelated configure() call — e.g. from a setup file
configure({ asyncUtilTimeout: 2000 })
console.log(getConfig().reactStrictMode) // undefined ✗ (expected: true)
The second configure() call erases the strict-mode setting. The function-form callback is affected identically:
configure(prev => ({ ...prev, asyncUtilTimeout: 2000 }))
// Works because prev spreads reactStrictMode — but only if callers remember to spread prev.
// The plain-object form has no such safety net.
Impact
Tests that rely on global strict-mode configuration (e.g. set in a setupFilesAfterFramework) silently lose that configuration if any later configure() call omits reactStrictMode. This is particularly easy to hit when test utilities or libraries call configure() with their own options.
Fix
Only write reactStrictMode into configForRTL when it is explicitly present in newConfig:
configForRTL = {
...configForRTL,
...(reactStrictMode !== undefined && {reactStrictMode}),
}
PR #1461 implements exactly this fix.
- 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 1 Tag übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
-
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 297 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 315 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 42/100
testing-library/react-testing-library#1421 · 1 Kommentar ·
Alle Issues in testing-library/react-testing-library
Ähnliche Issues
-
component:sight
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
agentic-os-org/ANOLISA#6738 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug Durable Agents Observability (AI Telemetry) status: needs triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
mastra-ai/mastra#26470 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
feature/cohorts feature/feature-flags team/feature-flags
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
Maintainer antworten meist innerhalb von 1 Tag
-
documentation good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Orbit-xyz/orbit-docs#11 ·
-
area/build area/tech debt
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 2 Tagen