diff options
author | Brett Walker <brett@digitalmoksha.com> | 2017-09-09 16:10:34 +0300 |
---|---|---|
committer | Brett Walker <brett@digitalmoksha.com> | 2017-09-23 16:23:11 +0300 |
commit | f5937926f22095b68ae8bf363e737730df1848ce (patch) | |
tree | a092dd16542a3fa667714baa21ab5cb9a6870e8a /spec/features/profiles | |
parent | 86698c960bb95e51bc6141b361ba3f1ee79abcdf (diff) |
refactored the Spinach feature `features/profile/emails.feature` into
an rspec feature
Diffstat (limited to 'spec/features/profiles')
-rw-r--r-- | spec/features/profiles/emails_spec.rb | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/spec/features/profiles/emails_spec.rb b/spec/features/profiles/emails_spec.rb new file mode 100644 index 00000000000..98b8c607cb0 --- /dev/null +++ b/spec/features/profiles/emails_spec.rb @@ -0,0 +1,56 @@ +require 'rails_helper' + +feature 'Profile > Emails' do + let(:user) { create(:user) } + + before do + login_as(user) + end + + describe 'User adds an email' do + before do + visit profile_emails_path + end + + scenario 'saves the new email' do + fill_in('Email', with: 'my@email.com') + click_button('Add email address') + + expect(page).to have_content('my@email.com Unverified') + expect(page).to have_content('user1@example.org Verified') + expect(page).to have_content('Resend Confirmation Email') + end + + scenario 'does not add a duplicate email' do + fill_in('Email', with: user.email) + click_button('Add email address') + + email = user.emails.find_by(email: user.email) + expect(email).to be_nil + expect(page).to have_content('Email has already been taken') + end + end + + scenario 'User removes email' do + user.emails.create(email: 'my@email.com') + visit profile_emails_path + expect(page).to have_content("my@email.com") + + click_link('Remove') + expect(page).to_not have_content("my@email.com") + end + + scenario 'User confirms email' do + email = user.emails.create(email: 'my@email.com') + visit profile_emails_path + expect(page).to have_content("my@email.com Unverified") + + email.confirm + expect(email.confirmed?).to be_truthy + + visit profile_emails_path + expect(page).to have_content("my@email.com Verified") + end + + scenario '' +end |