diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-01-18 19:00:14 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-01-18 19:00:14 +0000 |
commit | 05f0ebba3a2c8ddf39e436f412dc2ab5bf1353b2 (patch) | |
tree | 11d0f2a6ec31c7793c184106cedc2ded3d9a2cc5 /spec/requests/api/graphql/user_spec.rb | |
parent | ec73467c23693d0db63a797d10194da9e72a74af (diff) | |
download | gitlab-ce-05f0ebba3a2c8ddf39e436f412dc2ab5bf1353b2.tar.gz |
Add latest changes from gitlab-org/gitlab@15-8-stable-eev15.8.0-rc42
Diffstat (limited to 'spec/requests/api/graphql/user_spec.rb')
-rw-r--r-- | spec/requests/api/graphql/user_spec.rb | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/spec/requests/api/graphql/user_spec.rb b/spec/requests/api/graphql/user_spec.rb index 2e1e4971767..3e82d783a18 100644 --- a/spec/requests/api/graphql/user_spec.rb +++ b/spec/requests/api/graphql/user_spec.rb @@ -58,4 +58,45 @@ RSpec.describe 'User', feature_category: :users do ) end end + + describe 'email fields' do + before_all do + current_user.commit_email = current_user.emails.first.email + current_user.save! + end + + let_it_be(:query) do + graphql_query_for( + :user, + { username: current_user.username }, + 'emails { nodes { email } } commitEmail namespaceCommitEmails { nodes { id } }' + ) + end + + let_it_be(:email_1) { create(:email, user: current_user) } + let_it_be(:email_2) { create(:email, user: current_user) } + let_it_be(:namespace_commit_email_1) { create(:namespace_commit_email, email: email_1) } + let_it_be(:namespace_commit_email_2) { create(:namespace_commit_email, email: email_2) } + + context 'with permission' do + it 'returns the relevant email details' do + post_graphql(query, current_user: current_user) + + expect(graphql_data['user']['emails']['nodes'].pluck('email')).to match_array( + current_user.emails.map(&:email)) + expect(graphql_data['user']['namespaceCommitEmails']['nodes']).not_to be_empty + expect(graphql_data['user']['commitEmail']).to eq(current_user.commit_email) + end + end + + context 'without permission' do + it 'does not return email details' do + post_graphql(query, current_user: create(:user)) + + expect(graphql_data['user']['emails']['nodes']).to be_empty + expect(graphql_data['user']['namespaceCommitEmails']['nodes']).to be_empty + expect(graphql_data['user']['commitEmail']).to be_nil + end + end + end end |