Analisando os testes tenho algumas sugestões
Button
- Normalmente quando eu faço testes de snapshot, eu costumo fazer do container do componente, que seria,
const { container } = render(<Button title={words} />), assim ele pegaria o componente inteiro do button junto com seu CSS, o snapshot seria mais ou menos assim expect(container.firstchild).toMatchSnapshot()
- No 2 teste, eu pegaria o button através da query role (
getByRole('button', { name: words })) dele e não pelo query text, pq assim faria a query realmente do elemento button, se buscar pelo text caso alguém mudar no componente, de button para h1, o teste iria passar mesmo assim, pq está buscando através do text
- Fazer o teste passando o variant do button e fazer a verificação se o button trocou realmente para a cor desejada
Collection
- Deve exibir o botão de editar coleção quando o componente for renderizado - eu faria um teste utilizando o
role('button', pq assim verifica que realmente ta procurando um button, se for através do texto, pode ser que mude o button para um parágrafo e o teste ainda assim vai passar e vai deixar de ser um button
Search
- No teste de Search, o primeiro teste ele faz um
screen.getByRole('input'), mas eu acho que a role 'input' ela não existe, só se no componente vcs foram lá e colocaram um role="input" em algum elemento, ai ele existiria sim kkkkkkk
Obs: caso achem bom trocar o getByText e utilizar o getByRole, deem uma olhada em todos os testes pq tem vários lugares que podem ser mudados
Analisando os testes tenho algumas sugestões
Button
const { container } = render(<Button title={words} />), assim ele pegaria o componente inteiro do button junto com seu CSS, o snapshot seria mais ou menos assimexpect(container.firstchild).toMatchSnapshot()getByRole('button', { name: words })) dele e não pelo query text, pq assim faria a query realmente do elemento button, se buscar pelo text caso alguém mudar no componente, de button para h1, o teste iria passar mesmo assim, pq está buscando através do textCollection
role('button', pq assim verifica que realmente ta procurando um button, se for através do texto, pode ser que mude o button para um parágrafo e o teste ainda assim vai passar e vai deixar de ser um buttonSearch
screen.getByRole('input'), mas eu acho que a role 'input' ela não existe, só se no componente vcs foram lá e colocaram umrole="input"em algum elemento, ai ele existiria sim kkkkkkkObs: caso achem bom trocar o
getByTexte utilizar ogetByRole, deem uma olhada em todos os testes pq tem vários lugares que podem ser mudados