Configurando o Warden para uso nas especificações do controlador RSpec
Eu pude usar o Devise'ssign_in
método para efetuar login em um usuário em minhas especificações de controlador. Mas agora que estou removendo o Devise do meu aplicativo, não tenho certeza de como obter funcionalidade semelhante trabalhando apenas com o Warden por conta própria.
Como devo proceder para configurarspec/spec_helper.rb
e relacionadospec/support/*.rb
arquivos para obter Warden executando dentro de especificações do controlador suficientemente?
Eu tentei configurar um arquivo emspec/support/warden.rb
com estes conteúdos:
RSpec.configure do |config|
config.include Warden::Test::Helpers
config.after do
Warden.test_reset!
end
end
Então eu tenhobefore
chama semelhante a isso para autenticar umuser
fábrica:
before { login_as FactoryGirl.create(:user) }
Mas aqui está o erro que eu continuo vendo:
NameError:
undefined method `user' for nil:NilClass
Este erro remonta ao meuauthenticate_user!
método no controlador:
def authenticate_user!
redirect_to login_path, notice: "You need to sign in or sign up before continuing." if env['warden'].user.nil?
end
Eu apreciaria qualquer orientação que alguém pudesse fornecer.