Я смог использовать метод Devise sign_in
для входа пользователя в спецификации моего контроллера. Но теперь, когда я удаляю Devise из своего приложения, я не совсем уверен, как получить аналогичную функциональность, работая только с Warden самостоятельно.
Как мне настроить spec/spec_helper.rb
и связанные с ним файлы spec/support/*.rb
, чтобы получить Warden, работающий в спецификациях контроллера достаточно?
Я попытался настроить файл в spec/support/warden.rb
следующим образом:
RSpec.configure do |config|
config.include Warden::Test::Helpers
config.after do
Warden.test_reset!
end
end
Тогда у меня есть before
вызовы, подобные этому, для аутентификации a user
factory:
before { login_as FactoryGirl.create(:user) }
Но вот ошибка, которую я продолжаю видеть:
NameError:
undefined method `user' for nil:NilClass
Эта ошибка возвращается к моему методу authenticate_user!
в контроллере:
def authenticate_user!
redirect_to login_path, notice: "You need to sign in or sign up before continuing." if env['warden'].user.nil?
end
Буду признателен за любое руководство, которое может предоставить любой человек.