¿Por qué Capybara está descartando mi sesión después de un evento?

Probando una aplicación de rieles que tienebefore_filter :authenticate_user! Para la mayoría de los controladores, no puedo hacer que Capybara conserve una sesión.

He configurado Capybara utilizando PhantomJS con poltergeist.

Yo uso el siguiente ayudante:

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

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

Tengo el siguiente archivo de especificaciones:

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

Cuando ejecute la prueba como se muestra aquí, pasará. Sin embargo, si invoco unclick_link en algo que realiza acciones AJAX, o si simplemente trato de hacervisit '/tasks' dos veces, elshould la afirmación fallará porque me redireccionarán a la página de inicio de sesión de la aplicación.

He intentado algunos enfoques diferentes, incluyendo la creación de unCapibara :: Sesión, pero aún obtengo 401 códigos en las solicitudes de AJAX y solo puedo visitar una vez por especificación.

¿Qué estoy haciendo mal?