diff options
| -rw-r--r-- | spec/features/users/user_edit_spec.rb | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/spec/features/users/user_edit_spec.rb b/spec/features/users/user_edit_spec.rb new file mode 100644 index 000000000..b437b241d --- /dev/null +++ b/spec/features/users/user_edit_spec.rb @@ -0,0 +1,48 @@ +require 'spec_helper' + +include Warden::Test::Helpers +Warden.test_mode! + +# 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) + user.confirm! + login_as(user, :scope => :user) + visit edit_user_registration_path(user) + fill_in 'user_email', :with => 'newemail@example.com' + fill_in 'user_current_password', :with => user.password + click_button 'Modifier' + txts = [I18n.t( 'devise.registrations.updated'), I18n.t( 'devise.registrations.update_needs_confirmation')] + save_and_open_page + 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) + me.confirm! + other = FactoryGirl.create(:user, email: 'other@example.com') + other.confirm! + login_as(me, :scope => :user) + visit edit_user_registration_path(other) + expect(page).to have_content 'Votre Profil' + expect(page).to have_field('Email', with: me.email) + end + +end |
