Por que a Capivara está descartando minha sessão após um evento?
Testando um aplicativo de trilhos que possuibefore_filter :authenticate_user!
para a maioria dos controladores, não consigo capivar para preservar uma sessão.
Eu tenho a Capivara configurada usando o PhantomJS com o poltergeist.
Eu uso o seguinte ajudante:
require 'spec_helper'
include Warden::Test::Helpers
module FeatureHelpers
def login(user = FactoryGirl.create(:default_user))
login_as user, scope: :user
user
end
end
Eu tenho o seguinte arquivo de especificações:
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
Quando eu executar o teste como é mostrado aqui, ele passará. No entanto, se eu invoco umclick_link
em algo que executa ações do AJAX, ou se eu simplesmente tentar fazervisit '/tasks'
duas vezes, oshould
a declaração falhará porque serei redirecionado para a página de login do aplicativo.
Eu tentei algumas abordagens diferentes, incluindo a criação de umCapivara :: Sessão, mas eu ainda recebo códigos 401 em pedidos AJAX e só posso visitar com sucesso uma vez por especificação.
O que estou fazendo de errado?