J'utilise Devise 1.0.8 sur un projet Rails 2.3.8. Dans mon test du contrôleur je:current_user renvoie TrueClass au lieu d'un utilisateur dans un contrôleur utilisant Devise
context "when current_user is admin" do
should "render" do
sign_in Factory(:admin)
get :index
assert_response :success
end
end
Et dans le contrôleur lui-même, il y a la before_filter suivante:
def redirect_if_not_admin
puts current_user
redirect_to root_path unless current_user.try(:admin?)
end
Ceci est le résultat de mon test:
true
false
NoMethodError: undefined method `admin?' for true:TrueClass
Alors current_user est true lorsque j'utilise sign_in dans le test. Cependant, quand je ne le fais pas, current_user est nul, donc c'est définitivement affecté. Merci d'avance pour votre aide.