41 lines
1.3 KiB
Ruby
41 lines
1.3 KiB
Ruby
|
|
# Feature: User edit
|
|
# As a user
|
|
# I want to edit my user profile
|
|
# So I can change my email address
|
|
feature 'User edit', :devise do
|
|
|
|
after(:each) do
|
|
Warden.test_reset!
|
|
end
|
|
|
|
# Scenario: User changes email address
|
|
# Given I am signed in
|
|
# When I change my email address
|
|
# Then I see an account updated message
|
|
scenario 'user changes email address' do
|
|
user = FactoryGirl.create(:user)
|
|
login_as(user, :scope => :user)
|
|
visit edit_user_registration_path(user)
|
|
fill_in 'Email', :with => 'newemail@example.com'
|
|
fill_in 'Current password', :with => user.password
|
|
click_button 'Update'
|
|
txts = [I18n.t( 'devise.registrations.updated'), I18n.t( 'devise.registrations.update_needs_confirmation')]
|
|
expect(page).to have_content(/.*#{txts[0]}.*|.*#{txts[1]}.*/)
|
|
end
|
|
|
|
# Scenario: User cannot edit another user's profile
|
|
# Given I am signed in
|
|
# When I try to edit another user's profile
|
|
# Then I see my own 'edit profile' page
|
|
scenario "user cannot cannot edit another user's profile", :me do
|
|
me = FactoryGirl.create(:user)
|
|
other = FactoryGirl.create(:user, email: 'other@example.com')
|
|
login_as(me, :scope => :user)
|
|
visit edit_user_registration_path(other)
|
|
expect(page).to have_content 'Edit Profile'
|
|
expect(page).to have_field('Email', with: me.email)
|
|
end
|
|
|
|
end
|