Cześć,
mam problem z logowaniem się w testach. Stworzyłem sobie z pomocą FactoryGirl usera, w teście mam coś takiego:
before(:each) do @user = FactoryGirl.create(:user) end
następnie wykorzystuję helpera login(user). Wszystko jest pięknie do momentu, kiedy formularz się wypełni, zostanie naciśnięty przycisk LOG IN i wtedy pokazuje, że ‘Invalid username or password’, bo logowanie w Devise mam przez username. Czy ktoś miał już podobnym problem i może pomóc ? THX
Tutaj są moje pliki konfiguracyjne:
DB_Cleaner: https://pastebin.com/XT9wApA4
rails_helper.rb : https://pastebin.com/TrriPwCL
A nie jest tak, że User tworzy Ci się automatycznie z zahashowanym hasłem? W takim wypadku do formularza trafia hash, który… ponownie jest hashowany i porównywany z hashem hasła, który jest w systemie.
Prawdopodobnie database cleaner używa strategii “transaction”, a ponieważ przeglądarka ma osobne połączenie to nie zobaczy tego użytkownika którego tworzysz w speku. Jako to test odpalasz? Podejrzewam, że “feature”. Spróbuj więc:
config.before(:each, type: :feature) do
DatabaseCleaner.strategy = :truncation
end
Super. Dzięki dzięki, działa teraz ok. Post do zamknięcia.