aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
authorLuc Donnet2015-01-16 14:17:17 +0100
committerLuc Donnet2015-01-16 14:17:17 +0100
commit5ba8a9cb838c4036ae978763236baae5af37f758 (patch)
tree3a35913855dbfe74816e3bf50a9eabb2470c886a /spec
parenta6d7ea54328aaa405c0401b69f866c0450de5d83 (diff)
downloadchouette-core-5ba8a9cb838c4036ae978763236baae5af37f758.tar.bz2
Add spec features for user edit
Diffstat (limited to 'spec')
-rw-r--r--spec/features/users/user_edit_spec.rb48
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