2012-12-14 13 views
5

Używam kapibary przez jakiś czas, ale jestem nowy w czarnoksięstwie. Mam bardzo dziwny problem polegający na tym, że jeśli uruchomię specyfikację bez Capybary: js => true funkcjonalność, mogę zalogować się dobrze, ale jeśli spróbuję określić: js => true w specyfikacji, nie można znaleźć nazwy użytkownika/hasła.Sorcery/Capybara: Nie mogę się zalogować za pomocą: js => true

Oto makro uwierzytelniania:

module AuthenticationMacros 
    def sign_in 
    user = FactoryGirl.create(:user) 
    user.activate! 
    visit new_sessions_path 
    fill_in 'Email Address', :with => user.email 
    fill_in 'Password', :with => 'foobar' 
    click_button 'Sign In' 
    user 
    end 
end 

który jest nazywany w specyfikacji tak:

feature "project setup" do 
    include AuthenticationMacros 

    background do 
    sign_in 
    end 

    scenario "creating a project" do 
    "my spec here" 
    end 

Powyższy kod działa poprawnie. Jednak, jeśli mogę zmienić spec od scenariuszy (w tym przypadku)

scenario "adding questions to a project" do 

do

scenario "adding questions to a project", :js => true do 

logowania nie powiedzie się z 'Niepoprawna nazwa użytkownika/hasło' kombinacji. Dosłownie jedyną zmianą jest to, że: js => true. Używam domyślnego sterownika javascript kapibara. (Ładuje Firefoksa)

Jakieś pomysły, co tu się dzieje? Jestem kompletnie zakłopotany. Używam Capibara 2.0.1, Sorcery 0.7.13. Na stronie logowania nie ma javascriptu, a save_and_open_page przed kliknięciem "Zaloguj się" potwierdza, że ​​poprawne dane są wprowadzane w polach nazwa użytkownika/hasło. Wszelkie sugestie naprawdę doceniam - nie jestem w stanie.

Odpowiedz

8

Domyślnym sterownikiem javascript kapibara jest Selen zgodnie z dokumentem kapibara. Ponieważ Selenium wykonuje się w osobnym wątku, musisz wyłączyć urządzenia transakcyjne lub wątek Selenium nie będzie miał dostępu do danych utworzonych w bazie danych. Zobacz https://github.com/jnicklas/capybara#using-capybara-with-testunit. Ta sekcja zawiera te uwagi dotyczące wyłączania urządzeń transakcyjnych.

+0

Ach! Oczywiście! Wielkie dzięki, bardzo doceniane. – PlankTon

Powiązane problemy