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.
Resolução - Mateus F Torres
Segue minha resolução para este desafio
Foi bem interessante utilizar o Puppeteer para criar um teste E2E, com isso eu pude entender onde seria o melhor lugar para o Puppeteer dentro de um workflow da QA. Eu diria que a experiência de escrita dos testes é um tanto falha, devido ao sua API ser desenhada para automação de navegadores, no entannto, isso pode também ser por falta de prática com a ferramenta.
Minha proposta seria uma mescla de Cypress com Puppeteer:- Cypress seria a ferramenta para testes de integração e ponta-a-ponta- Puppeteer seria a ferramente para testes de perfomance (load, first meaning paint, time to interactivity, etc)Meu interesse agora é integrar Puppeteer dentro desta minha aplicação: Warehouse
Ela já possue uma boa bateria de testes automatizados com Cypress (com alguns fluxos ainda incompletos)
Assim posso capturar métricas de perfomance da PWA e aprender mais Puppeteer.
Extras:
Foquei em apenas commitar código referente ao que foi pedido.
Pessoalmente gosto de automatizar bastante do meu workflow de formatação, lintagem e testes.
Meu template pessoal , Barefoot, tem parte das configuração que eu adicionaria
Edit
Após analisar mais a fundo Cypress e Puppeteer cheguei a conclusão que estava enganado.
Cypress é sim um ferramenta incrível de testes de integração e ponta a ponta...quando local.
Tentar usar está biblioteca para validar aplicações externas é um anti-padrão e basicamente impossível 😞
Em contrapartida ferramentas como Puppeteer, Selenium e BrowserStack são melhores para esta tarefa.
Percebo que o desconforto que senti era por tentar escrever um teste externo com uma mentalidade de testes locais.
Nada como uma tarefa simples e direta para desconstruir presunções.