diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-01-18 15:10:41 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-01-18 15:10:41 +0300 |
commit | f23a9a17ed6237c346d2e9210c6841e319e8d030 (patch) | |
tree | 7b46c0ff193c445f35774a86ec3d0ff000d2ff77 /spec/requests | |
parent | d7432b66ff241af3f39d82da581832a084983378 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/requests')
-rw-r--r-- | spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb | 16 | ||||
-rw-r--r-- | spec/requests/api/graphql/users_spec.rb | 46 | ||||
-rw-r--r-- | spec/requests/api/users_spec.rb | 20 |
3 files changed, 67 insertions, 15 deletions
diff --git a/spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb b/spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb index a285cebc805..e594d67aab4 100644 --- a/spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb +++ b/spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb @@ -39,21 +39,7 @@ RSpec.describe 'Creating a new HTTP Integration' do project.add_maintainer(current_user) end - it 'creates a new integration' do - post_graphql_mutation(mutation, current_user: current_user) - - new_integration = ::AlertManagement::HttpIntegration.last! - integration_response = mutation_response['integration'] - - expect(response).to have_gitlab_http_status(:success) - expect(integration_response['id']).to eq(GitlabSchema.id_from_object(new_integration).to_s) - expect(integration_response['type']).to eq('HTTP') - expect(integration_response['name']).to eq(new_integration.name) - expect(integration_response['active']).to eq(new_integration.active) - expect(integration_response['token']).to eq(new_integration.token) - expect(integration_response['url']).to eq(new_integration.url) - expect(integration_response['apiUrl']).to eq(nil) - end + it_behaves_like 'creating a new HTTP integration' [:project_path, :active, :name].each do |argument| context "without required argument #{argument}" do diff --git a/spec/requests/api/graphql/users_spec.rb b/spec/requests/api/graphql/users_spec.rb index 72d86c10df1..22b68fbc9bb 100644 --- a/spec/requests/api/graphql/users_spec.rb +++ b/spec/requests/api/graphql/users_spec.rb @@ -54,6 +54,52 @@ RSpec.describe 'Users' do ) end end + + context 'when admins is true' do + let_it_be(:admin) { create(:user, :admin) } + let_it_be(:another_admin) { create(:user, :admin) } + + let(:query) { graphql_query_for(:users, { admins: true }, 'nodes { id }') } + + context 'current user is not an admin' do + let(:post_query) { post_graphql(query, current_user: current_user) } + + it_behaves_like 'a working users query' + + it 'includes all non-admin users', :aggregate_failures do + post_graphql(query) + + expect(graphql_data.dig('users', 'nodes')).to include( + { "id" => user1.to_global_id.to_s }, + { "id" => user2.to_global_id.to_s }, + { "id" => user3.to_global_id.to_s }, + { "id" => current_user.to_global_id.to_s }, + { "id" => admin.to_global_id.to_s }, + { "id" => another_admin.to_global_id.to_s } + ) + end + end + + context 'when current user is an admin' do + it_behaves_like 'a working users query' + + it 'includes only admins', :aggregate_failures do + post_graphql(query, current_user: admin) + + expect(graphql_data.dig('users', 'nodes')).to include( + { "id" => another_admin.to_global_id.to_s }, + { "id" => admin.to_global_id.to_s } + ) + + expect(graphql_data.dig('users', 'nodes')).not_to include( + { "id" => user1.to_global_id.to_s }, + { "id" => user2.to_global_id.to_s }, + { "id" => user3.to_global_id.to_s }, + { "id" => current_user.to_global_id.to_s } + ) + end + end + end end describe 'sorting and pagination' do diff --git a/spec/requests/api/users_spec.rb b/spec/requests/api/users_spec.rb index 3ca4956c397..94fba451860 100644 --- a/spec/requests/api/users_spec.rb +++ b/spec/requests/api/users_spec.rb @@ -368,6 +368,16 @@ RSpec.describe API::Users do expect(json_response.map { |u| u['id'] }).not_to include(internal_user.id) end end + + context 'admins param' do + it 'returns all users' do + get api("/users?admins=true", user) + + expect(response).to match_response_schema('public_api/v4/user/basics') + expect(json_response.size).to eq(2) + expect(json_response.map { |u| u['id'] }).to include(user.id, admin.id) + end + end end context "when admin" do @@ -487,6 +497,16 @@ RSpec.describe API::Users do expect(response).to have_gitlab_http_status(:bad_request) end end + + context 'admins param' do + it 'returns only admins' do + get api("/users?admins=true", admin) + + expect(response).to match_response_schema('public_api/v4/user/basics') + expect(json_response.size).to eq(1) + expect(json_response.first['id']).to eq(admin.id) + end + end end describe "GET /users/:id" do |