J'utilise Rails 3.2.1 et rails-rspec 2.8.1....Lorsque j'exécute le test de réinitialisation du mot de passe d'un utilisateur, il semble que le rechargement de l'objet utilisateur ne charge pas l'attribut du nouveau mot de passe.....
Voici le code de mon test :
describe "Reset password page" do
let(:teacher) { FactoryGirl.create(:teacher, :email=>"jane@gmail.com")}
let(:old_password) { teacher.password }
before do
visit reset_password_form_path
fill_in "Email", with: teacher.email
click_button "Reset Password"
end
it { should have_content('Your new password has been emailed to the address you provided.')}
specify { Teacher.find_by_email("jane@gmail.com").password.should_not == old_password }
## specify { teacher.reload.password.should_not == old_password } ##THIS FAILS
end
spécifier { teacher.reload.password.should_not == old_password } ÉCHEC mais specify { Teacher.find_by_email("jane@gmail.com").password.should_not == old_password } PASSES
Cela me dit que le mot de passe est correctement sauvegardé, mais qu'il n'est pas rechargé...une idée de la raison ? J'utilise la méthode Rails 3.2.x "has_secure_password" pour déployer les fonctionnalités de login/mot de passe. Cela signifie qu'un password_digest est enregistré dans la base de données, et que le mot de passe est un attribut virtuel (je pense).