BigW Consortium Gitlab

profile_spec.rb 2.55 KB
Newer Older
1 2
require 'spec_helper'

3
describe 'Profile account page', :js do
4 5 6
  let(:user) { create(:user) }

  before do
7
    sign_in(user)
8 9
  end

10
  describe 'when I delete my account' do
11
    before do
Dmitriy Zaporozhets committed
12
      visit profile_account_path
13
    end
Dmitriy Zaporozhets committed
14

15
    it { expect(page).to have_content('Delete account') }
Dmitriy Zaporozhets committed
16

17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
    it 'does not immediately delete the account' do
      click_button 'Delete account'

      expect(User.exists?(user.id)).to be_truthy
    end

    it 'deletes user', :js do
      click_button 'Delete account'

      fill_in 'password', with: '12345678'

      page.within '.popup-dialog' do
        click_button 'Delete account'
      end

      expect(page).to have_content('Account scheduled for removal')
      expect(User.exists?(user.id)).to be_falsy
    end

    it 'shows invalid password flash message', :js do
      click_button 'Delete account'

      fill_in 'password', with: 'testing123'

      page.within '.popup-dialog' do
        click_button 'Delete account'
      end

      expect(page).to have_content('Invalid password')
    end

    it 'does not show delete button when user owns a group' do
      group = create(:group)
      group.add_owner(user)

      visit profile_account_path

      expect(page).not_to have_button('Delete account')
      expect(page).to have_content("Your account is currently an owner in these groups: #{group.name}")
56 57 58
    end
  end

59 60
  describe 'when I reset RSS token' do
    before do
61
      visit profile_personal_access_tokens_path
62 63 64
    end

    it 'resets RSS token' do
65 66 67
      within('.rss-token-reset') do
        previous_token = find("#rss_token").value

68
        accept_confirm { click_link('reset it') }
69

70 71
        expect(find('#rss_token').value).not_to eq(previous_token)
      end
72 73 74 75 76

      expect(page).to have_content 'RSS token was successfully reset'
    end
  end

77 78 79
  describe 'when I reset incoming email token' do
    before do
      allow(Gitlab.config.incoming_email).to receive(:enabled).and_return(true)
80
      visit profile_personal_access_tokens_path
81 82 83
    end

    it 'resets incoming email token' do
84 85
      within('.incoming-email-token-reset') do
        previous_token = find('#incoming_email_token').value
86

87
        accept_confirm { click_link('reset it') }
88

89 90
        expect(find('#incoming_email_token').value).not_to eq(previous_token)
      end
91 92
    end
  end
93 94 95 96 97 98 99 100 101 102 103 104 105 106

  describe 'when I change my username' do
    before do
      visit profile_account_path
    end

    it 'changes my username' do
      fill_in 'user_username', with: 'new-username'

      click_button('Update username')

      expect(page).to have_content('new-username')
    end
  end
Dmitriy Zaporozhets committed
107
end