bug: calling configure() without reactStrictMode resets it to undefined, silently disabling strict mode
@suhailopensource ya está trabajando en esto.
Desde el 29/7/2026.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Tranquilo
- Stack tecnológico
- javascript
- Área
- testing
Línea de trabajo
Comienza en src/config.js, en configure(), y revisa después cómo getConfig() expone el valor guardado de reactStrictMode. La corrección estará lista cuando una llamada posterior a configure() que omita reactStrictMode conserve la configuración anterior, incluido el caso de objeto plano descrito en la reproducción.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- JavaScript
- Estrellas
- 19.7k
- Forks
- 1.2k
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de testing-library/react-testing-library
-
fireEvent.select does not wrap its automatic native focus in actPosiblemente ocupada @sergioperezcheco la tomó hace 6 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
testing-library/react-testing-library#1459 · 2 comentarios ·
-
perf: optimize container lookup with early exitQuizá libre de nuevo @Ch-Abhinav-Chowdary la tomó hace 302 días y no hay ningún pull request abierto. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 35/100
testing-library/react-testing-library#1430 · 1 comentario ·
-
`fireEvent.mouseEnter` does not forward `relatedTarget` (relatedTarget is the window instead)Posiblemente ocupada @swarnim02 la tomó hace 319 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
testing-library/react-testing-library#1421 · 1 comentario ·
Todos los issues de testing-library/react-testing-library
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
[quality] Nothing keeps docs/skills/manifest.md in sync with docs/skills/*.mdPosiblemente ocupada @hivecommons-hive la tomó hoy. Abiertoagent/quality hive/covered-by-pr hive/hosted-available-lke648397-260827-5n31 quality testing
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
apache/rocketmq-dashboard#6610 ·
Los mantenedores suelen responder en 3 días
-
documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
githubnext/gh-aw-workshop#4535 ·
Los mantenedores suelen responder en 1 día
-
Global update drops overrideAccess, so Local API updateGlobal fails filterOptions validation (3.90 regression)Posiblemente ocupada @PINYOPATTANAWASANPORN la tomó hoy. Abiertoarea: core Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
payloadcms/payload#18674 · 1 comentario ·
Los mantenedores suelen responder en 1 día