Cypress не определяет маршрут от cy.route () - PullRequest
0 голосов
/ 17 июня 2020

У меня есть готовый бэкэнд. Но у меня 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"
                }
            })

enter image description here Я только что проверил, что после нажатия кнопки входа в систему cypress не улавливает вызов api входа в систему

1 Ответ

1 голос
/ 18 июня 2020

Попробуйте этот подход, обратите внимание, что method, url и response не входят в параметр options.

cy.server()
cy.route({
    method:'POST',
    url:'/dashboard/v1/public/login',
    response: {
        "error": true,
        "message": "User with above credentials does not exists"
    },
    status:404,
    options: {
        body:{
            email:"s@gmail.com",
            password:"sss"
        }
    }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...