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-03-12 03:09:18 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-03-12 03:09:18 +0300
commit723dc8aced90172b7f6e20ad5484083c4c821fa7 (patch)
treef99d3f3fd161e554e3424179257022dd880771f8 /spec/requests/api
parent19d63dbca44d8380b8bc0d51d890137691ddf2a7 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/requests/api')
-rw-r--r--spec/requests/api/api_spec.rb2
-rw-r--r--spec/requests/api/ci/runner/jobs_request_post_spec.rb6
-rw-r--r--spec/requests/api/ci/runner/runners_delete_spec.rb8
-rw-r--r--spec/requests/api/ci/runner/runners_post_spec.rb38
-rw-r--r--spec/requests/api/ci/runner/runners_verify_post_spec.rb8
-rw-r--r--spec/requests/api/graphql/snippets_spec.rb25
6 files changed, 70 insertions, 17 deletions
diff --git a/spec/requests/api/api_spec.rb b/spec/requests/api/api_spec.rb
index e1050d0b5f7..522030652bd 100644
--- a/spec/requests/api/api_spec.rb
+++ b/spec/requests/api/api_spec.rb
@@ -112,6 +112,7 @@ RSpec.describe API::API do
'meta.project' => project.full_path,
'meta.root_namespace' => project.namespace.full_path,
'meta.user' => user.username,
+ 'meta.client_id' => an_instance_of(String),
'meta.feature_category' => 'issue_tracking')
end
end
@@ -125,6 +126,7 @@ RSpec.describe API::API do
expect(log_context).to match('correlation_id' => an_instance_of(String),
'meta.caller_id' => '/api/:version/users',
'meta.remote_ip' => an_instance_of(String),
+ 'meta.client_id' => an_instance_of(String),
'meta.feature_category' => 'users')
end
end
diff --git a/spec/requests/api/ci/runner/jobs_request_post_spec.rb b/spec/requests/api/ci/runner/jobs_request_post_spec.rb
index 6367b4bd55f..aced094e219 100644
--- a/spec/requests/api/ci/runner/jobs_request_post_spec.rb
+++ b/spec/requests/api/ci/runner/jobs_request_post_spec.rb
@@ -806,7 +806,7 @@ RSpec.describe API::Ci::Runner, :clean_gitlab_redis_shared_state do
subject { request_job(id: job.id) }
it_behaves_like 'storing arguments in the application context' do
- let(:expected_params) { { user: user.username, project: project.full_path } }
+ let(:expected_params) { { user: user.username, project: project.full_path, client_id: "user/#{user.id}" } }
end
it_behaves_like 'not executing any extra queries for the application context', 3 do
@@ -817,7 +817,7 @@ RSpec.describe API::Ci::Runner, :clean_gitlab_redis_shared_state do
context 'when the runner is of project type' do
it_behaves_like 'storing arguments in the application context' do
- let(:expected_params) { { project: project.full_path } }
+ let(:expected_params) { { project: project.full_path, client_id: "runner/#{runner.id}" } }
end
it_behaves_like 'not executing any extra queries for the application context', 2 do
@@ -831,7 +831,7 @@ RSpec.describe API::Ci::Runner, :clean_gitlab_redis_shared_state do
let(:runner) { create(:ci_runner, :group, groups: [group]) }
it_behaves_like 'storing arguments in the application context' do
- let(:expected_params) { { root_namespace: group.full_path_components.first } }
+ let(:expected_params) { { root_namespace: group.full_path_components.first, client_id: "runner/#{runner.id}" } }
end
it_behaves_like 'not executing any extra queries for the application context', 2 do
diff --git a/spec/requests/api/ci/runner/runners_delete_spec.rb b/spec/requests/api/ci/runner/runners_delete_spec.rb
index 75960a1a1c0..6c6c465f161 100644
--- a/spec/requests/api/ci/runner/runners_delete_spec.rb
+++ b/spec/requests/api/ci/runner/runners_delete_spec.rb
@@ -37,8 +37,10 @@ RSpec.describe API::Ci::Runner, :clean_gitlab_redis_shared_state do
context 'when valid token is provided' do
let(:runner) { create(:ci_runner) }
+ subject { delete api('/runners'), params: { token: runner.token } }
+
it 'deletes Runner' do
- delete api('/runners'), params: { token: runner.token }
+ subject
expect(response).to have_gitlab_http_status(:no_content)
expect(::Ci::Runner.count).to eq(0)
@@ -48,6 +50,10 @@ RSpec.describe API::Ci::Runner, :clean_gitlab_redis_shared_state do
let(:request) { api('/runners') }
let(:params) { { token: runner.token } }
end
+
+ it_behaves_like 'storing arguments in the application context' do
+ let(:expected_params) { { client_id: "runner/#{runner.id}" } }
+ end
end
end
end
diff --git a/spec/requests/api/ci/runner/runners_post_spec.rb b/spec/requests/api/ci/runner/runners_post_spec.rb
index 67163b9329f..7984b1d4ca8 100644
--- a/spec/requests/api/ci/runner/runners_post_spec.rb
+++ b/spec/requests/api/ci/runner/runners_post_spec.rb
@@ -39,18 +39,32 @@ RSpec.describe API::Ci::Runner, :clean_gitlab_redis_shared_state do
post api('/runners'), params: { token: token }
end
- it 'creates runner with default values' do
- post api('/runners'), params: { token: registration_token }
+ context 'with a registration token' do
+ let(:token) { registration_token }
- runner = ::Ci::Runner.first
+ it 'creates runner with default values' do
+ request
- expect(response).to have_gitlab_http_status(:created)
- expect(json_response['id']).to eq(runner.id)
- expect(json_response['token']).to eq(runner.token)
- expect(runner.run_untagged).to be true
- expect(runner.active).to be true
- expect(runner.token).not_to eq(registration_token)
- expect(runner).to be_instance_type
+ runner = ::Ci::Runner.first
+
+ expect(response).to have_gitlab_http_status(:created)
+ expect(json_response['id']).to eq(runner.id)
+ expect(json_response['token']).to eq(runner.token)
+ expect(runner.run_untagged).to be true
+ expect(runner.active).to be true
+ expect(runner.token).not_to eq(registration_token)
+ expect(runner).to be_instance_type
+ end
+
+ it_behaves_like 'storing arguments in the application context' do
+ subject { request }
+
+ let(:expected_params) { { client_id: "runner/#{::Ci::Runner.first.id}" } }
+ end
+
+ it_behaves_like 'not executing any extra queries for the application context' do
+ let(:subject_proc) { proc { request } }
+ end
end
context 'when project token is used' do
@@ -71,7 +85,7 @@ RSpec.describe API::Ci::Runner, :clean_gitlab_redis_shared_state do
it_behaves_like 'storing arguments in the application context' do
subject { request }
- let(:expected_params) { { project: project.full_path } }
+ let(:expected_params) { { project: project.full_path, client_id: "runner/#{::Ci::Runner.first.id}" } }
end
it_behaves_like 'not executing any extra queries for the application context' do
@@ -97,7 +111,7 @@ RSpec.describe API::Ci::Runner, :clean_gitlab_redis_shared_state do
it_behaves_like 'storing arguments in the application context' do
subject { request }
- let(:expected_params) { { root_namespace: group.full_path_components.first } }
+ let(:expected_params) { { root_namespace: group.full_path_components.first, client_id: "runner/#{::Ci::Runner.first.id}" } }
end
it_behaves_like 'not executing any extra queries for the application context' do
diff --git a/spec/requests/api/ci/runner/runners_verify_post_spec.rb b/spec/requests/api/ci/runner/runners_verify_post_spec.rb
index e2f5f9b2d68..c2e97446738 100644
--- a/spec/requests/api/ci/runner/runners_verify_post_spec.rb
+++ b/spec/requests/api/ci/runner/runners_verify_post_spec.rb
@@ -37,11 +37,17 @@ RSpec.describe API::Ci::Runner, :clean_gitlab_redis_shared_state do
end
context 'when valid token is provided' do
+ subject { post api('/runners/verify'), params: { token: runner.token } }
+
it 'verifies Runner credentials' do
- post api('/runners/verify'), params: { token: runner.token }
+ subject
expect(response).to have_gitlab_http_status(:ok)
end
+
+ it_behaves_like 'storing arguments in the application context' do
+ let(:expected_params) { { client_id: "runner/#{runner.id}" } }
+ end
end
end
end
diff --git a/spec/requests/api/graphql/snippets_spec.rb b/spec/requests/api/graphql/snippets_spec.rb
new file mode 100644
index 00000000000..9edd805678a
--- /dev/null
+++ b/spec/requests/api/graphql/snippets_spec.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'snippets' do
+ include GraphqlHelpers
+
+ let_it_be(:current_user) { create(:user) }
+ let_it_be(:snippets) { create_list(:personal_snippet, 3, :repository, author: current_user) }
+
+ describe 'querying for all fields' do
+ let(:query) do
+ graphql_query_for(:snippets, { ids: [global_id_of(snippets.first)] }, <<~SELECT)
+ nodes { #{all_graphql_fields_for('Snippet')} }
+ SELECT
+ end
+
+ it 'can successfully query for snippets and their blobs' do
+ post_graphql(query, current_user: current_user)
+
+ expect(graphql_data_at(:snippets, :nodes)).to be_one
+ expect(graphql_data_at(:snippets, :nodes, :blobs, :nodes)).to be_present
+ end
+ end
+end