spec/support/common_actions/users.rb
module Users
def sign_up(email = 'manuela@consul.dev', password = 'judgementday')
visit '/'
click_link 'Register'
fill_in 'user_username', with: "Manuela Carmena #{rand(99999)}"
fill_in 'user_email', with: email
fill_in 'user_password', with: password
fill_in 'user_password_confirmation', with: password
check 'user_terms_of_service'
click_button 'Register'
end
def login_through_form_with_email_and_password(email='manuela@consul.dev', 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'
fill_in 'user_login', with: user.email
fill_in 'user_password', with: user.password
click_button 'Enter'
end
def login_through_form_as_officer(user)
visit root_path
click_link 'Sign in'
fill_in 'user_login', with: user.email
fill_in 'user_password', with: user.password
click_button 'Enter'
visit new_officing_residence_path
end
def login_as_manager
manager = create(:manager)
login_as(manager.user)
visit management_sign_in_path
end
def login_managed_user(user)
allow_any_instance_of(Management::BaseController).to receive(:managed_user).and_return(user)
end
def confirm_email
body = ActionMailer::Base.deliveries.last.try(:body)
expect(body).to be_present
sent_token = /.*confirmation_token=(.*)".*/.match(body.to_s)[1]
visit user_confirmation_path(confirmation_token: sent_token)
expect(page).to have_content "Your account has been confirmed"
end
def reset_password
create(:user, email: 'manuela@consul.dev')
visit '/'
click_link 'Sign in'
click_link 'Forgotten your password?'
fill_in 'user_email', with: 'manuela@consul.dev'
click_button 'Send instructions'
end
def expect_to_be_signed_in
expect(find('.top-bar-right')).to have_content 'My account'
end
def expect_to_not_be_signed_in
expect(find('.top-bar-right')).not_to have_content 'My account'
end
end