2019-08-14 17:26:47 +02:00
feature 'Managing password:' do
context 'for simple users' do
let ( :user ) { create ( :user ) }
let ( :new_password ) { 'a simple password' }
scenario 'a simple user can reset their password' do
visit root_path
click_on 'Connexion'
2021-04-15 17:37:23 +02:00
click_on 'Mot de passe oublié ?'
2019-08-14 17:26:47 +02:00
expect ( page ) . to have_current_path ( new_user_password_path )
fill_in 'Email' , with : user . email
perform_enqueued_jobs do
2021-04-15 17:18:27 +02:00
click_on 'Demander un nouveau mot de passe'
2019-08-14 17:26:47 +02:00
end
2020-09-01 15:28:31 +02:00
expect ( page ) . to have_content ( 'Si votre courriel existe dans notre base de données, vous recevrez un lien vous permettant de récupérer votre mot de passe.' )
2019-08-14 17:26:47 +02:00
click_reset_password_link_for user . email
expect ( page ) . to have_content 'Changement de mot de passe'
fill_in 'user_password' , with : new_password
fill_in 'user_password_confirmation' , with : new_password
click_on 'Changer le mot de passe'
2020-09-01 15:28:31 +02:00
expect ( page ) . to have_content ( 'Votre mot de passe a bien été modifié.' )
2019-08-14 17:26:47 +02:00
end
end
context 'for admins' do
let ( :user ) { create ( :user ) }
let ( :administrateur ) { create ( :administrateur , user : user ) }
let ( :new_password ) { 'a new, long, and complicated password!' }
scenario 'an admin can reset their password' do
visit root_path
click_on 'Connexion'
2021-04-15 17:37:23 +02:00
click_on 'Mot de passe oublié ?'
2019-08-14 17:26:47 +02:00
expect ( page ) . to have_current_path ( new_user_password_path )
fill_in 'Email' , with : user . email
perform_enqueued_jobs do
2021-04-15 17:18:27 +02:00
click_on 'Demander un nouveau mot de passe'
2019-08-14 17:26:47 +02:00
end
2020-09-01 15:28:31 +02:00
expect ( page ) . to have_content ( 'Si votre courriel existe dans notre base de données, vous recevrez un lien vous permettant de récupérer votre mot de passe.' )
2019-08-14 17:26:47 +02:00
click_reset_password_link_for user . email
expect ( page ) . to have_content 'Changement de mot de passe'
fill_in 'user_password' , with : new_password
fill_in 'user_password_confirmation' , with : new_password
click_on 'Changer le mot de passe'
2020-09-01 15:28:31 +02:00
expect ( page ) . to have_content ( 'Votre mot de passe a bien été modifié.' )
2019-08-14 17:26:47 +02:00
end
end
end