Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-01-18 15:10:41 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-01-18 15:10:41 +0300
commitf23a9a17ed6237c346d2e9210c6841e319e8d030 (patch)
tree7b46c0ff193c445f35774a86ec3d0ff000d2ff77 /spec/requests
parentd7432b66ff241af3f39d82da581832a084983378 (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.rb16
-rw-r--r--spec/requests/api/graphql/users_spec.rb46
-rw-r--r--spec/requests/api/users_spec.rb20
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