Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

On jest, `afterEach(cleanup)` is too late to unmount a component using `useSyncExternalStore` with asynchronous updating

Abierto
#1,421 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
42/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
javascript, react

Línea de trabajo

Empieza ejecutando el repositorio de reproducción enlazado en el issue con Jest, React y @testing-library/react. Investiga el momento entre la finalización de la prueba y afterEach(cleanup), centrándote en cómo se gestionan las actualizaciones de useSyncExternalStore durante el desmontaje. Se considera terminado cuando la reproducción ya no registra la advertencia de act durante el cleanup y el comportamiento existente permanece intacto.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

  • @testing-library/react version: 16.3.0
  • react version: 19.2.0
  • Testing Framework and version:
    • jest: 30.2.0
  • DOM Environment:
    • jsdom: 27.0.1
Relevant code or config:

None (please see reproduction repository described below)

What you did:

Testing a component using React's useSyncExternalStore and running the test without async

What happened:

useSyncExternalStore's update may happen just after finishing the test, but afterEach is not called in that timing, so the callback of useSyncExternalStore cannot handle 'unmounted' state, resulting the log An update to TestComponent inside a test was not wrapped in act(...)..

Reproduction:

I created a repositoy for the reproduction: https://github.com/jet2jet/testing-test

Problem description:

During just after finishing a test and just before afterEach, the test code cannot insert act() calls, so the problem An update to ... cannot be resolved with using act().

Suggested solution:

I think it's very difficult to call cleanup() just after finishing a test, but it's necessary to unmount, for resolving timing problem.

Lenguaje dominante
JavaScript
Estrellas
19.7k
Forks
1.2k
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de testing-library/react-testing-library

Todos los issues de testing-library/react-testing-library

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.