У меня есть готовый бэкэнд. Но у меня sh, что мой интерфейс во время тестирования использует только макет сервера, который мы можем создать на кипарисе. Мой тест:
cy.server()
cy.route({
method:'POST',
url:'/dashboard/v1/public/login',
status:404,
response:{
"error": true,
"message": "User with above credentials does not exists"
}
})
cy.get('[data-testid="loging-page-email-input')
.type('test@gmail.com')
cy.get('[data-testid="loging-page-password-input')
.type('test123')
cy.get('[data-testid="loging-page-button-clicked')
.type('{enter}')
cy.get('[data-testid="loging-page-auth-error-msg') // Here it should grab alert box
Но проблема в том, что те же учетные данные верны, если мы хотим войти на веб-сайт физически. Итак, если cypress может войти в систему, мы увидим, что он не принимает данные, которые мы предоставляем в
cy.route({
method:'POST',
url:'/dashboard/v1/public/login',
status:404,
response:{
"error": true,
"message": "User with above credentials does not exists"
}
})
Вместо этого он выполняет вызов API и может войти в систему.
Есть идеи, что не так? Более того, мой базовый URL-адрес http://localhost:3000
, но мой полный URL-адрес API для входа: y.x.in/dashboard/v1/public/login
ОБНОВЛЕНИЕ Я теперь тоже отдал тело на роут
cy.server()
cy.route({
method:'POST',
url:'/dashboard/v1/public/login',
body:{
email:"s@gmail.com",
password:"sss"
},
status:404,
response:{
"error": true,
"message": "User with above credentials does not exists"
}
})
Я только что проверил, что после нажатия кнопки входа в систему cypress не улавливает вызов api входа в систему