Операция прошла успешно, но спецификация не прошла - PullRequest
0 голосов
/ 05 февраля 2019

Вот моя спецификация для действия редактирования через флажки.Preference имеет много Regions (на самом деле, многие ко многим; отношения работают правильно), и флажки должны добавлять или удалять регионы из предпочтения.

Вот спецификация:

      it "saves updated regions when the button is clicked" do
        uncheck "preference_region_ids_#{afr.id}"
        check "preference_region_ids_#{asia.id}"
        click_button "Save"
        expect(pref.regions).to_not include afr
        expect(pref.regions).to include asia

        afr_box = page.all("#preference_region_ids_#{afr.id}").first 
        expect(afr_box.checked?).to eq false

        asia_box = page.all("#preference_region_ids_#{asia.id}").first 
        expect(asia_box.checked?).to eq true
      end

Вот мой метод обновления с контроллера:

  def update
    @prefs.update(pref_params)
    add_home_airport(params) if params[:preference][:home_airport]
    delete_vacations(pref_params) if pref_params[:vacations_attributes]
    redirect_to preferences_path
  end

Когда я тестирую функциональность в моем браузере, он работает.Области правильно изменены, и флажки на перенаправленной странице правильно проверены.

Когда я запускаю спецификацию, если я нажимаю в конце действия update, я вижу, что оно функционировало правильно.Тем не менее, спецификации не удается.Если я проскользую в спецификацию незадолго до ожидания (после нажатия кнопки «Сохранить»), я вижу, что массив regions добавил Азию, но не удалил Африку, хотя всего минуту назад подсчет из контроллера показал, что он работает правильно.

Что здесь происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...