Você sabe fazer testes E2E de verdade?
Olá pessoal, esse é meu primeiro post aqui, quero trazer um problema real que estou enfrentando no desenvolvimento de um projeto pessoal e gostaria da colaboração de todos entendidos no assunto, pois não achei nenhum conteúdo relevante sobre o tema.
No caso possuo uma aplicação cujo frontend é feito em ReactJS e o backend em NodeJS.
Independentemente das tecnologias utilizadas no frontend ou backend, imagine o seguinte cenário comum de criação de usuário em todas aplicações:
- Usuário entra no site (lado do frontend) http://localhost:3000;
- Clica no botão de "Cadastre-se";
- Digita seu nome, e-mail e CPF;
- É redirecionado para a tela de confirmação de cadastro;
- Recebe um código de verificação por e-mail;
- Digita o código de confirmação;
- É redirecionado para a tela de definição de senha;
- Digita sua senha;
- É redirecionado para o dashboard.
Fluxo bonito não é?
Se eu fizer um teste E2E no frontend, e botar pra rodar consigo validar todo o fluxo bonitinho. Mas e se eu rodar o mesmo teste pela segunda vez?
Como estou chamando a mesma api, ex: http://localhost:3333 como ela vai saber que essa requisição que ta vindo é de um teste E2E? Como já foi chamada na requisição anterior, vai falar que o usuário já existe no banco de dados não é verdade?
Uma das formas que eu imaginei de resolver isso seria, no momento que eu rodar o teste E2E no frontend, a minha variável NODE_ENV é definida para testing, a partir daí todas as requests que sairem do meu frontend irão para um backend de testes, ex: http://localhost:3334 e quando eu chegar na última etapa do meu teste, eu mando uma requisição http para o meu backend limpar o banco, ex: http://localhost:3334/clean-database
Acho que essa não seria a melhor das soluções, mas é a única forma que consigo pensar de prontidão.
Alguém aí já passou por esse problema, como resolveu?
PS: Lembrando que é um teste E2E que eu preciso fazer, mocks não são bem vindas.