Почему Капибара отказывается от моей сессии после одного события?

Тестирование приложения рельсов, которое имеетbefore_filter :authenticate_user! для большинства контроллеров я не могу заставить Капибару сохранить сеанс.

Я настроил Capybara используя PhantomJS с poltergeist.

Я использую следующий помощник:

require 'spec_helper'
include Warden::Test::Helpers

module FeatureHelpers
  def login(user = FactoryGirl.create(:default_user))
    login_as user, scope: :user
    user
  end
end

У меня есть следующий файл спецификации:

require 'spec_helper'
include Warden::Test::Helpers

feature 'Leads Data Tasks View' do
  before(:each) do
    @user = login
  end

  after{ Warden.test_reset! }

  context "clicking a task button" do
    scenario "login persists across multuple actions", js: true do
      visit '/tasks'

      page.should have_selector('#parse', count: 1)
    end
  end
end

Когда я запускаю тест, как показано здесь, он пройдет. Тем не менее, если я призываюclick_link на то, что выполняет действия AJAX, или если я просто пытаюсь сделатьvisit '/tasks' дваждыshould утверждение не удастся, потому что я буду перенаправлен на страницу входа в приложение.

Я пробовал несколько разных подходов, включая настройкуКапибара :: Session, но я все еще получаю 401 код на запросы AJAX, и я могу только успешно посетить один раз по спецификации.

Что я делаю неправильно?

Ответы на вопрос(1)

Ваш ответ на вопрос