Olá Renato! Tudo bem?
Pelo que você descreveu, parece que o problema está relacionado ao comportamento do cy.intercept
e como ele está sendo configurado no beforeEach
.
Quando você comenta ou remove a linha 27 (cy.wait('@stubPost')
), o teste ainda pode estar interceptando a requisição por causa da interceptação configurada no beforeEach
. Isso ocorre porque o cy.intercept
está sendo configurado para interceptar todas as requisições POST
para a URL especificada, e isso acontece antes de cada teste.
Para resolver isso, você pode tentar duas abordagens:
Remover a interceptação no beforeEach
para o teste específico:
Você pode configurar a interceptação apenas para os testes que precisam dela. Por exemplo, mova a configuração do cy.intercept
para dentro do teste específico:
it('Deve falhar mesmo que os campos sejam preenchidos corretamente', () => {
cy.intercept('POST', 'https://adopet-api-i8qu.onrender.com/adotante/login', {
statusCode: 400,
}).as('stubPost');
cy.login('rogerio.mota@sharklasers.com', 'Teste123@');
cy.wait('@stubPost');
cy.get('.error').should('contain', 'Falha no login. Consulte suas credenciais.');
});
Utilizar cy.intercept
condicionalmente:
Se você deseja manter a interceptação no beforeEach
, pode adicionar uma condição para verificar se o teste específico precisa da interceptação:
beforeEach(() => {
cy.visit('https://adopet-frontend-cypress.vercel.app');
cy.get('[data-test="login-button"]').click();
if (Cypress.currentTest.title.includes('Deve falhar mesmo que os campos sejam preenchidos corretamente')) {
cy.intercept('POST', 'https://adopet-api-i8qu.onrender.com/adotante/login', {
statusCode: 400,
}).as('stubPost');
}
});
Com essas abordagens, você deve conseguir controlar melhor quando a interceptação deve ocorrer e evitar que ela interfira em outros testes.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.