Cypress.io - программно задает ответ на основе параметров запроса в cy.route ()

Я завершаю запрос api в своем сквозном тесте и хотел бы иметь возможность возвращать другой ответ в зависимости от параметров запроса, которые отправляются.

В настоящее время мой заглушка возвращает статический ответ, независимо от того, что отправлено, и выглядит следующим образом:

cy.server()
cy.route({
    method: 'POST',
    url: '**/redeem-code',
    status: 200,
    response: {
        status: "Success"
    },
    delay: 500
})

Я хотел бы иметь возможность проверить опубликованные параметры запроса, а затем условно решить, какой ответ вернуть. Я пытаюсь сделать что-то вроде этого:

cy.server()
cy.route({
    method: 'POST',
    url: '**/redeem-code',
    status: 200,
    response: (req) => {
        if(req.code == '1234') return { status: "Success" }
        else return { status: "Failure" }
    },
    delay: 500
})

Очевидно, что код выше не работает; это просто пример того, что я пытаюсь сделать.

Я знаю, что Cypress позволяет использовать методы ответа, но я не могу найти синтаксис для того, что я хочу делать в любом месте своих документов. Как получить параметры запроса в методе ответа, чтобы я мог решить, какой ответ вернуть?

javascript,integration-testing,end-to-end,cypress,

6
Яндекс.Метрика