1
resposta

[Dúvida] Dificuldade de encontrar o @stubPost

Este é o meu código :

describe('Página de login', () => {

    beforeEach(() => {
        cy.visit('https://adopet-frontend-cypress.vercel.app/');
        cy.get('[data-test="login-button"]').click();
        cy.intercept('POST', 'https://adopet-api-i8qu.onrender.com/adotante/login', {
            statusCode: 400,
        }).as('stubPost');
    });

    it('preencher campo de email e senha certo e exibir mensagem de erro', () => {
        cy.login('luizanjos88@gmailcom','Senha123');
        cy.wait('@stubPost', { timeout: 10000 }); // 10 segundos
        cy.contains('Falha no login. Consulte suas credenciais.').should('be.visible');

    });
});

mas quando rodo ele aparece a mensagem de erro :

Error: CypressError: Timed out retrying after 10000ms: cy.wait() timed out waiting 10000ms for the 1st request to the route: stubPost. No request ever occurred.

tem algo errado ?

1 resposta

Olá Luiz! Tudo bem?

O erro que você está recebendo indica que o Cypress não detectou nenhuma requisição para a rota que você interceptou com o alias @stubPost. Aqui estão algumas coisas que você pode verificar para tentar resolver esse problema:

  1. Verifique a URL e o método HTTP: Certifique-se de que a URL e o método HTTP na função cy.intercept() estão corretos. No seu caso, você está interceptando uma requisição POST para https://adopet-api-i8qu.onrender.com/adotante/login. Verifique se essa URL é exatamente a mesma que está sendo usada na aplicação quando você tenta fazer o login.

  2. Confirme se a requisição está realmente sendo feita: Abra o DevTools do seu navegador e vá para a aba "Network". Tente fazer a mesma ação manualmente e veja se a requisição POST para a URL especificada está sendo feita. Se não estiver, pode haver um problema com a lógica de sua aplicação ou a URL pode estar incorreta.

  3. Verifique o comando cy.login(): Certifique-se de que o comando cy.login() realmente dispara a requisição POST que você está tentando interceptar. Se esse comando apenas preenche os campos e não clica no botão de login, a requisição não será feita.

  4. Atrasos ou timing: Às vezes, a requisição pode demorar um pouco para ser iniciada. Você pode tentar aumentar o tempo de espera no cy.wait() para garantir que ele tenha tempo suficiente para capturar a requisição.

Aqui está um exemplo de como você pode verificar se a requisição está sendo feita corretamente:

cy.intercept('POST', 'https://adopet-api-i8qu.onrender.com/adotante/login', (req) => {
    console.log('Request made:', req);
}).as('stubPost');

Com isso, você poderá ver no console do navegador se a requisição está realmente sendo feita.

Espero que essas dicas ajudem a resolver o problema. Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.