Durante a Aula 4, de como lidar com dados sensíveis, aprendemos a inserir as credenciais de login em um arquivo .env separado, e chamar as credencias dentro do corpo da função post com uma variável de ambiente, utilizando a URL https://apialurapic.herokuapp.com/user/login para executar o método POST. Entretanto, na hora de testar o código, o cypress retorna erro de cy.request() failed on: https://apialurapic.herokuapp.com/user/login, dizendo que The response we received from your web server was: > 401: Unauthorized.
Achei que pudesse ser erro da minha URL (que verifiquei manualmente pelo navegador), das credenciais que talvez tivessem erro de digitação no arquivo env.json, ou mesmo do meu código, já que manualmente consigo fazer o login normalmente, então eu baixei o modelo fornecido ao final da aula e executei o teste no código dele, sem alterações, entretanto, o mesmo erro persiste até com o uso do gabarito baixado.
Alguém sabe indicar o motivo da falha, só pra eu conseguir entender o por que do acesso não ser autorizado no teste mas ser autorizado manualmente?
O código usado para executar o teste é o do gabarito, inalterado:
describe('Buscar fotos e dados', () => {
it('buscar fotos do flavio', () => {
cy.request({
method: 'GET',
url: 'https://apialurapic.herokuapp.com/flavio/photos'
}).then((res) => {
expect(res.status).to.be.equal(200)
expect(res.body).is.not.empty
expect(res.body[0]).to.have.property('description')
expect(res.body[0].description).to.be.equal('Farol iluminado')
}
)
})
it('fazer login do flavio', () => {
cy.request({
method: 'POST',
url: 'https://apialurapic.herokuapp.com/user/login',
body: Cypress.env()
}).then((res) => {
expect(res.status).to.be.equal(200)
expect(res.body).is.not.empty
expect(res.body).to.have.property('id')
expect(res.body.id).to.be.equal(1)
expect(res.body).to.have.property('email')
expect(res.body.email).to.be.equal("flavio@alurapic.com.br")
}
)
})
})
Segue a foto da mensagem completa de falha: