Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Meu código não executou o stubPost

Fiz as alterações exatamente conforme a aula. Porém, a stab não funcionou. A automação faz apenas o teste de validar o login, mas não executa o stub não sei por quê. Alguém poderia me dar um help por gentileza. Verifiquei também a se os parâmetros estariam dentro da indentação, mas pelo visto não é. Copiei e colei na minha IDE o código da página da aula, mas nem isso funcionou.

describe('Página de login', () => {
    
    beforeEach(() => {
        cy.visit('http://localhost:4200/#/home')
        cy.intercept('POST','http://localhost:3000/user/login', {
                statusCode: 400
                }).as('stubPost')
    })

it('Verificar mensagem de campos obrigatórios', () => {
        cy.contains('User name is required!').should('be.visible')
        cy.contains('Password is required!').should('be.visible')
    
    })

        it('Test deve falhar mesmo que os campos sejam preenchidas corretamente para aparecer o popup', () => {
        cy.login('ddddddddddd','aaaaaaaaaaa')
                 cy.wait('@stubPost')
          
  })
})
2 respostas
solução!

Olá, Ruben! Entendo que está tendo problemas com a execução do stubPost. Vamos tentar resolver isso juntos!

Primeiramente, gostaria de confirmar se você está executando a aplicação localmente e se as portas 4200 e 3000 estão corretamente configuradas e disponíveis. O Cypress precisa ser capaz de acessar essas portas para realizar os testes.

Em segundo lugar, baseado no que você compartilhou, seu código parece estar correto. No entanto, um problema comum que pode estar acontecendo é que a requisição POST que você está tentando interceptar pode não estar sendo chamada. Isso pode acontecer se, por exemplo, o login ou a senha estiverem incorretos.

Aqui está um exemplo de como você pode verificar se a requisição foi realmente chamada:

it('Test deve falhar mesmo que os campos sejam preenchidos corretamente para aparecer o popup', () => {
    cy.login('ddddddddddd','aaaaaaaaaaa')
    cy.wait('@stubPost').then((interception) => {
        assert.isNotNull(interception.response, 'A requisição POST foi chamada')
    })
})

Neste exemplo, cy.wait('@stubPost') irá esperar que a requisição POST seja feita, e então a função de callback será chamada com o objeto de interceptação como argumento. Se a requisição POST não foi chamada, interception.response será null, e o teste irá falhar com a mensagem 'A requisição POST foi chamada'.

Espero que isso ajude a identificar o problema. Se a requisição POST estiver sendo chamada corretamente, então o problema pode estar em outra parte do seu código ou configuração.

Espero ter ajudado e bons estudos!

Olá Ruben, eu tive um problema com o código pois havia colocado a validação cy.contains('(Logout)').should('be.visible') dentro do commands.js login. Após retirar o código funcionou.