Warum verwirft Capybara meine Sitzung nach einem Ereignis?

Testen einer Schienenanwendung, die hatbefore_filter :authenticate_user! Bei den meisten Controllern kann ich Capybara nicht dazu bringen, eine Sitzung beizubehalten.

Ich habe Capybara mit PhantomJS mit Poltergeist konfiguriert.

Ich benutze folgenden Helfer:

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

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

Ich habe die folgende Spezifikationsdatei:

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

Wenn ich den Test wie hier gezeigt durchführe, wird er bestanden. Wenn ich jedoch aclick_link auf etwas, das AJAX-Aktionen ausführt, oder wenn ich es einfach versuchevisit '/tasks' zweimal dieshould Die Bestätigung schlägt fehl, da ich zur Anmeldeseite der App weitergeleitet werde.

Ich habe ein paar verschiedene Ansätze ausprobiert, darunter das Einrichten einesCapybara :: Sitzung, aber ich erhalte immer noch 401 Codes für AJAX-Anfragen und kann nur einmal pro Spezifikation erfolgreich besuchen.

Was mache ich falsch?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage