Настройка Warden для использования в спецификациях контроллера RSpec
Я был в состоянии использовать Devise'ssign_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
вызовы, подобные этому, чтобы аутентифицироватьuser
завод:
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
Буду признателен за любые рекомендации, которые может дать любой.