diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2024-01-03 00:12:50 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2024-01-03 00:12:50 +0300 |
commit | 3a72ac775065b61bbdb285a8f4f6f152ccb4db49 (patch) | |
tree | 3e03be3d792b6693a57f7ef3da8b228c694fb45a /spec/features/admin | |
parent | 0cea0a8f44d2cef1d4d132c72a07f8995962115c (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/features/admin')
-rw-r--r-- | spec/features/admin/users/admin_impersonates_user_spec.rb (renamed from spec/features/admin/users/user_impersonation_spec.rb) | 2 | ||||
-rw-r--r-- | spec/features/admin/users/admin_manages_user_identities_spec.rb (renamed from spec/features/admin/users/user_identities_spec.rb) | 2 | ||||
-rw-r--r-- | spec/features/admin/users/admin_sees_unconfirmed_user_spec.rb | 52 | ||||
-rw-r--r-- | spec/features/admin/users/admin_sees_user_spec.rb (renamed from spec/features/admin/users/user_spec.rb) | 75 |
4 files changed, 54 insertions, 77 deletions
diff --git a/spec/features/admin/users/user_impersonation_spec.rb b/spec/features/admin/users/admin_impersonates_user_spec.rb index 215afc40d80..44b67abcc80 100644 --- a/spec/features/admin/users/user_impersonation_spec.rb +++ b/spec/features/admin/users/admin_impersonates_user_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Admin::Users::UserImpersonation', feature_category: :user_management do +RSpec.describe 'Admin impersonates user', feature_category: :user_management do let_it_be(:user) { create(:omniauth_user, provider: 'twitter', extern_uid: '123456') } let_it_be(:current_user) { create(:admin) } diff --git a/spec/features/admin/users/user_identities_spec.rb b/spec/features/admin/users/admin_manages_user_identities_spec.rb index 6db94750761..42d0c2e9ab8 100644 --- a/spec/features/admin/users/user_identities_spec.rb +++ b/spec/features/admin/users/admin_manages_user_identities_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Admin::Users::UserIdentities', feature_category: :user_management do +RSpec.describe 'Admin manages user identities', feature_category: :user_management do let_it_be(:user) { create(:omniauth_user, provider: 'twitter', extern_uid: '123456') } let_it_be(:current_user) { create(:admin) } diff --git a/spec/features/admin/users/admin_sees_unconfirmed_user_spec.rb b/spec/features/admin/users/admin_sees_unconfirmed_user_spec.rb new file mode 100644 index 00000000000..7b45e5b5cde --- /dev/null +++ b/spec/features/admin/users/admin_sees_unconfirmed_user_spec.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe 'Admin sees unconfirmed user', feature_category: :user_management do + include Spec::Support::Helpers::ModalHelpers + + let_it_be(:user) { create(:omniauth_user, provider: 'twitter', extern_uid: '123456') } + let_it_be(:current_user) { create(:admin) } + + before do + sign_in(current_user) + enable_admin_mode!(current_user, use_ui: true) + end + + context 'when user has an unconfirmed email', :js do + # Email address contains HTML to ensure email address is displayed in an HTML safe way. + let_it_be(:unconfirmed_email) { "#{generate(:email)}<h2>testing<img/src=http://localhost:8000/test.png>" } + let_it_be(:unconfirmed_user) { create(:user, :unconfirmed, unconfirmed_email: unconfirmed_email) } + + where(:path_helper) do + [ + [-> (user) { admin_user_path(user) }], + [-> (user) { projects_admin_user_path(user) }], + [-> (user) { keys_admin_user_path(user) }], + [-> (user) { admin_user_identities_path(user) }], + [-> (user) { admin_user_impersonation_tokens_path(user) }] + ] + end + + with_them do + it "allows an admin to force confirmation of the user's email", :aggregate_failures do + visit path_helper.call(unconfirmed_user) + + click_button 'Confirm user' + + within_modal do + expect(page).to have_content("Confirm user #{unconfirmed_user.name}?") + expect(page).to( + have_content( + "This user has an unconfirmed email address (#{unconfirmed_email}). You may force a confirmation.") + ) + + click_button 'Confirm user' + end + + expect(page).to have_content('Successfully confirmed') + expect(page).not_to have_button('Confirm user') + end + end + end +end diff --git a/spec/features/admin/users/user_spec.rb b/spec/features/admin/users/admin_sees_user_spec.rb index b7e7a037ffc..d8c142d402f 100644 --- a/spec/features/admin/users/user_spec.rb +++ b/spec/features/admin/users/admin_sees_user_spec.rb @@ -193,34 +193,6 @@ RSpec.describe 'Admin::Users::User', feature_category: :user_management do end end - describe 'show user identities' do - it 'shows user identities', :aggregate_failures do - visit admin_user_identities_path(user) - - expect(page).to have_content(user.name) - expect(page).to have_content('twitter') - end - end - - describe 'update user identities' do - before do - allow(Gitlab::Auth::OAuth::Provider).to receive(:providers).and_return([:twitter, :twitter_updated]) - end - - it 'modifies twitter identity', :aggregate_failures do - visit admin_user_identities_path(user) - - find('.table').find(:link, 'Edit').click - fill_in 'identity_extern_uid', with: '654321' - select 'twitter_updated', from: 'identity_provider' - click_button 'Save changes' - - expect(page).to have_content(user.name) - expect(page).to have_content('twitter_updated') - expect(page).to have_content('654321') - end - end - describe 'remove users secondary email', :js do let_it_be(:secondary_email) do create :email, email: 'secondary@example.com', user: user @@ -237,17 +209,6 @@ RSpec.describe 'Admin::Users::User', feature_category: :user_management do end end - describe 'remove user with identities' do - it 'removes user with twitter identity', :aggregate_failures do - visit admin_user_identities_path(user) - - click_link 'Delete' - - expect(page).to have_content(user.name) - expect(page).not_to have_content('twitter') - end - end - describe 'show user keys', :js do it do key1 = create(:key, user: user, title: 'ssh-rsa Key1') @@ -284,40 +245,4 @@ RSpec.describe 'Admin::Users::User', feature_category: :user_management do end end end - - context 'when user has an unconfirmed email', :js do - # Email address contains HTML to ensure email address is displayed in an HTML safe way. - let_it_be(:unconfirmed_email) { "#{generate(:email)}<h2>testing<img/src=http://localhost:8000/test.png>" } - let_it_be(:unconfirmed_user) { create(:user, :unconfirmed, unconfirmed_email: unconfirmed_email) } - - where(:path_helper) do - [ - [-> (user) { admin_user_path(user) }], - [-> (user) { projects_admin_user_path(user) }], - [-> (user) { keys_admin_user_path(user) }], - [-> (user) { admin_user_identities_path(user) }], - [-> (user) { admin_user_impersonation_tokens_path(user) }] - ] - end - - with_them do - it "allows an admin to force confirmation of the user's email", :aggregate_failures do - visit path_helper.call(unconfirmed_user) - - click_button 'Confirm user' - - within_modal do - expect(page).to have_content("Confirm user #{unconfirmed_user.name}?") - expect(page).to have_content( - "This user has an unconfirmed email address (#{unconfirmed_email}). You may force a confirmation." - ) - - click_button 'Confirm user' - end - - expect(page).to have_content('Successfully confirmed') - expect(page).not_to have_button('Confirm user') - end - end - end end |