Как разрешить Cypress возвращать пользовательские ошибки или сообщения - PullRequest
0 голосов
/ 18 февраля 2019

Я ищу способ создать собственное сообщение вместо стандартных сообщений.У меня есть этот фрагмент кода (немного зашифрованный):

Cypress.Commands.add('authenticate', {prevSubject: 'optional'}, (_, fixture) => {
  return cy.fixture(fixture).then(credentials => {
    cy
      .apiRequest('scrambled/url/here', {
        method: 'post',
        authorizationMethod: 'Basic',
        token: apiOauthSecret,
        data: credentials
      })
      .then(resp => {
        expect(resp.status)
          .to
          .eq(201, 'Unable to authenticate, login failed')
        storeTokenInSession(resp.body)
      })
  })
})

Этот код приводит к ошибке, подобной этой: https://i.stack.imgur.com/l2j4o.png

Если я исправлю код, то результат будетХорошо, результат выглядит следующим образом: https://i.stack.imgur.com/Pr1iA.png

Как видите, сообщение должно отображаться, если eq () завершается неудачей, а не когда eq () завершается успешно.

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

У вас, люди, есть идеи, как заставить это работать?Я уже изучил использование cy.log () и решение, показанное здесь.

1 Ответ

0 голосов
/ 21 февраля 2019

Вы можете использовать Cypress.log для этого:

if (resp.status !== 201) {
  Cypress.log({
    name: 'Authentication'
    message: 'failed'
  })
}
expect(resp).its('status').eq(201)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...