Тестирование подачи тёмной формы с коначей

Мы пытаемся проверить поведение формы в нашей системе, используя konacha и sinon. На маршрутах отправка формы обрабатывается по следующей схеме:

save: (object) ->
  object.one "didCreate", @, ->
    @transitionTo "nextStep"

  object.one "becameInvalid", @, ->
    object.send("becameValid")

  object.one "becameError", @, ->
    @transitionTo "currentStep"

  object.get("transaction").commit()

Это прекрасно работает, когда реальный пользователь взаимодействует с браузером. Если наш сервер возвращает ошибку проверки, пользователь остается на той же странице, и ошибки проверки отображаются правильно. Когда мы пытаемся проверить эту функциональность, форма POST никогда не возникает, и ни один из блоков object.one не вызывается.

Мы тестируем со следующим:

describe "When I enter invalid information", ->
  beforeEach (done) ->
    Em.run ->
      $('.button-success').click()
      done()

  it "should redirect to the current step", ->
    Em.run ->
      @router.get("url").should.equal "/currentStep"

  describe ".help-block", ->
    it "should display a validation error", ->
      Em.run ->
        $('.help-block').text().should.equal "is not a valid, can't be blank"

Когда я бегу konacha: служить, я могу видеть форму правильно. Нажатие на кнопку "Отправить" вручную в iFrame ведет себя иначе, чем нажатие на кнопку "Отправить" в отдельном окне браузера (в отдельном окне браузера я вижу, что происходит POST). Я догадываюсь, что это связано с POST, происходящим в следующем цикле выполнения. Если это правда, есть ли способ для теста Конача охватить несколько итераций цикла выполнения? Как мне перейти к следующей итерации цикла вручную?

0 ответов

Другие вопросы по тегам