Implementa ambiente completo de testes #74
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Turma, não engatei isso no CI então não há a garantia que irá funcionar por completo mas ao mesmo tempo eu estou extremamente feliz com o ambiente de testes local.
Em resumo, depois de instalar as novas dependências, você pode:
E isso vai automaticamente levantar e matar todos os serviços caso você escolha fazer um test E2E. E caso essa seja a escolha, basta dentro do seu teste você fazer o seguinte:
E como é teste, cada vez que você rodar ele, o script de serviço irá subir um novo banco de dados do zero (sem state) para começar de um estado conhecido. E caso seu teste quebre no meio e deixe alguma porta presa, não tem problema, quando você rodar de novo ele vai matar o processo que ficou preso e subir tudo de novo, começando do zero. Isso inclusive se você estiver com a estrela do Mario implementando no modo
npm run test:watch
.E tem muita coisa para fazer conforme as necessidades forem chegando, como por exemplo ao resetar o banco deixar ele num estado específico que você quer, e tudo isso a gente vai implementando conforme as implementações dos recursos do site.
Resumo
.test.js
ao lado do arquivo que você quer testar./api/v1/migrations
então na pasta/pages/api/v1/migrations
você encontra o arquivoindex.public.js
e ao lado criei o arquivoindex.test.js
.Próximo passo
Engatar no CI aqui do Github. To empolgado, espero que funcione sem muitas complicações 👍
[edit]
O
jest
foi configurado para aceitar módulos doES6
e também os absolute imports do Next.js 👍[edit2]
Os containers criados para o ambiente de teste e desenvolvimento não são os mesmos, então você não vai perder o state do seu banco de desenvolvimento ao rodar o teste 👍