react19-test-patterns
Faz seu agente atualizar os arquivos de teste para serem compatíveis com o React 19. Isso garante que os testes continuem funcionando e verificando o código corretamente.
O que ela faz
Este guia ajuda você a atualizar seus testes de código para que funcionem com a nova versão do React (React 19). Ele mostra como corrigir partes específicas do seu código de teste que pararam de funcionar ou mudaram.
Quando usar
- ✓Quando você está atualizando seu projeto para o React 19.
- ✓Quando seus testes que usavam o React 18 começam a falhar após a atualização.
- ✓Quando você vê mensagens de erro sobre 'act' ou 'Simulate' nos seus testes.
Exemplo do que pedir para a IA
“Como eu atualizo meus testes para o React 19?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
O guia fornece exemplos de 'antes' e 'depois' para cada mudança necessária. Você substitui o código antigo pelo novo código mostrado nos exemplos para corrigir seus testes.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill react19-test-patternsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/react19-test-patterns/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Padrões de Migração de Testes do React 19
Referência para todas as migrações de arquivos de teste exigidas pelo React 19.
Ordem de Prioridade
Corrija os arquivos de teste nesta ordem; cada camada depende da anterior:
actimport corrija primeiro, isso desbloqueia todo o restoSimulate→fireEventcorrija imediatamente após o act- Limpeza completa do react-dom/test-utils remova as importações restantes
- Contagens de chamadas do StrictMode meça o real, não adivinhe
- Envolvimento assíncrono do act para os avisos restantes de "não envolvido em act"
- Helper de renderização personalizado verifique uma vez por base de código, não por teste
1. Correção de Importação do act()
// Before REMOVED in React 19:
import { act } from 'react-dom/test-utils';
// After:
import { act } from 'react';
Se misturado com outras importações do test-utils:
// Before:
import { act, Simulate, renderIntoDocument } from 'react-dom/test-utils';
// After split the imports:
import { act } from 'react';
import { fireEvent, render } from '@testing-library/react'; // replaces Simulate + renderIntoDocument
2. Simulate → fireEvent
// Before Simulate REMOVED in React 19:
import { Simulate } from 'react-dom/test-utils';
Simulate.click(element);
Simulate.change(input, { target: { value: 'hello' } });
Simulate.submit(form);
Simulate.keyDown(element, { key: 'Enter', keyCode: 13 });
// After:
import { fireEvent } from '@testing-library/react';
fireEvent.click(element);
fireEvent.change(input, { target: { value: 'hello' } });
fireEvent.submit(form);
fireEvent.keyDown(element, { key: 'Enter', keyCode: 13 });
3. Mapeamento Completo da API do react-dom/test-utils
| Antigo (react-dom/test-utils) | Novo local |
|---|---|
act |
import { act } from 'react' |
Simulate |
fireEvent de @testing-library/react |
renderIntoDocument |
render de @testing-library/react |
findRenderedDOMComponentWithTag |
getByRole, getByTestId do RTL |
findRenderedDOMComponentWithClass |
getByRole ou container.querySelector |
scryRenderedDOMComponentsWithTag |
getAllByRole do RTL |
isElement, isCompositeComponent |
Remover, não necessário com RTL |
isDOMComponent |
Remover |
4. Correções de Contagem de Chamadas do StrictMode
O StrictMode do React 19 não chama mais duas vezes useEffect em desenvolvimento. As asserções de espionagem que contam chamadas de efeito devem ser atualizadas.
Estratégia: sempre meça, nunca adivinhe:
# Run the failing test, read the actual count from the error:
npm test -- --watchAll=false --testPathPattern="[filename]" --forceExit 2>&1 | grep -E "Expected|Received"
// Before (React 18 StrictMode effects ran twice):
expect(mockFn).toHaveBeenCalledTimes(2); // 1 call × 2 (strict double-invoke)
// After (React 19 StrictMode effects run once):
expect(mockFn).toHaveBeenCalledTimes(1);
// Render-phase calls (component body) still double-invoked in React 19 StrictMode:
expect(renderSpy).toHaveBeenCalledTimes(2); // stays at 2 for render body calls
Perguntas frequentes
O que é 'act'?
'act' é uma função usada em testes para garantir que as atualizações da interface do usuário aconteçam antes que você verifique o resultado. No React 19, a forma de importar 'act' mudou.
O que é 'Simulate'?
'Simulate' era uma forma de simular ações do usuário (como cliques ou digitação) nos testes. No React 19, isso foi substituído por 'fireEvent'.
Por que meus testes chamam funções duas vezes no React 19?
No React 19, o 'StrictMode' (um modo para ajudar a encontrar problemas) não chama mais certas funções (como `useEffect`) duas vezes em desenvolvimento. Você precisa ajustar suas contagens de chamadas nos testes para refletir isso.
Detalhes
Descrição original do autor
Provides before/after patterns for migrating test files to React 19 compatibility, including act() imports, Simulate removal, and StrictMode call count changes.
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5334
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
cpp-testing
Faz seu agente escrever e melhorar testes para código C++. Ajuda a configurar ferramentas de teste e a corrigir erros.
affaan-m/ECC
csharp-testing
Ajuda seu agente a criar testes para código C# e .NET. Ele usa as melhores práticas para garantir que os testes sejam eficientes e confiáveis.
affaan-m/ECC
django-tdd
Faz seu agente aplicar estratégias de teste para Django com pytest-django e TDD. É útil para escrever testes robustos e garantir a qualidade do código, especialmente para APIs DRF.
affaan-m/ECC