Skip to content

Commit

Permalink
Add test suite for the feature
Browse files Browse the repository at this point in the history
The tests that will check the featute
is working well added. There are four test:

1. Checks that the emails are been send to
the user. The test looks for the link in there
and takes the token. Visits the page and
changes the password.

2 and 3. Both change the password by hand. One
uses a password written by the manager, whilst
the other uses the 'Generate random password'
option. Both tests check that the user can
sign in with the new passwords.

4. Checks that the password can be printed
when it is saved.
  • Loading branch information
iagirre committed Apr 2, 2018
1 parent ff872db commit d84895b
Show file tree
Hide file tree
Showing 2 changed files with 92 additions and 2 deletions.
84 changes: 82 additions & 2 deletions spec/features/management/account_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,14 @@
login_as_manager
end

scenario "Should not allow unverified users to create spending proposals" do
scenario "Should not allow unverified users to edit their account" do
user = create(:user)
login_managed_user(user)

click_link "Edit user account"
visit management_root_path

click_link 'Edit user account'
click_link 'Reset password via email'

expect(page).to have_content "No verified user logged in yet"
end
Expand All @@ -29,4 +32,81 @@
expect(user.reload.erase_reason).to eq "Deleted by manager: manager_user_#{Manager.last.user_id}"
end

scenario "Send reset password email to currently managed user session" do
user = create(:user, :level_three)
login_managed_user(user)
visit management_root_path

click_link 'Edit user account'
click_link 'Reset password via email'

click_link 'Send reset password email'

expect(page).to have_content 'Email correctly sent.'

email = ActionMailer::Base.deliveries.last

expect(email).to have_text 'Change your password'
end

scenario "Manager changes the password by hand (writen by them)" do
user = create(:user, :level_three)
login_managed_user(user)
visit management_root_path

click_link 'Edit user account'
click_link 'Reset password manually'

find(:css, "input[id$='user_password']").set("new_password")

click_button 'Save'

expect(page).to have_content 'Password reseted successfully'

logout

login_through_form_with_email_and_password(user.email, 'new_password')

expect(page).to have_content 'You have been signed in successfully.'
end

scenario "Manager generates random password", :js do
user = create(:user, :level_three)
login_managed_user(user)
visit management_root_path

click_link 'Edit user account'
click_link 'Reset password manually'
click_link 'Generate random password'

new_password = find_field('user_password').value

click_button 'Save'

expect(page).to have_content 'Password reseted successfully'

logout

login_through_form_with_email_and_password(user.username, new_password)

expect(page).to have_content 'You have been signed in successfully.'
end

scenario "The password is printed", :js do
user = create(:user, :level_three)
login_managed_user(user)
visit management_root_path

click_link 'Edit user account'
click_link 'Reset password manually'

find(:css, "input[id$='user_password']").set("another_new_password")

click_button 'Save'

expect(page).to have_content 'Password reseted successfully'
expect(page).to have_css("a[href='javascript:window.print();']", text: 'Print password')
expect(page).to have_css("div.for-print-only", text: 'another_new_password', visible: false)
end

end
10 changes: 10 additions & 0 deletions spec/support/common_actions.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,16 @@ def sign_up(email = '[email protected]', password = 'judgementday')
click_button 'Register'
end

def login_through_form_with_email_and_password(email='[email protected]', password='judgementday')
visit root_path
click_link 'Sign in'

fill_in 'user_login', with: email
fill_in 'user_password', with: password

click_button 'Enter'
end

def login_through_form_as(user)
visit root_path
click_link 'Sign in'
Expand Down

0 comments on commit d84895b

Please sign in to comment.