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
path: root/spec
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-04-02 12:08:14 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-04-02 12:08:14 +0300
commitade18c9d68d5a2e6c6e28ef7e9d3add3b3491ace (patch)
treecf4154332fc95283f58cccb1383e43b40485d91d /spec
parentba836d98593d68d8d6c22c540e31c8031a786bd8 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
-rw-r--r--spec/controllers/projects/blob_controller_spec.rb26
-rw-r--r--spec/lib/banzai/filter/issuable_state_filter_spec.rb14
-rw-r--r--spec/lib/gitlab/code_navigation_path_spec.rb31
-rw-r--r--spec/serializers/diff_file_entity_spec.rb8
-rw-r--r--spec/serializers/diffs_entity_spec.rb2
-rw-r--r--spec/serializers/diffs_metadata_entity_spec.rb4
-rw-r--r--spec/services/metrics/dashboard/custom_dashboard_service_spec.rb13
-rw-r--r--spec/services/metrics/dashboard/pod_dashboard_service_spec.rb5
-rw-r--r--spec/services/metrics/dashboard/self_monitoring_dashboard_service_spec.rb5
-rw-r--r--spec/services/metrics/dashboard/system_dashboard_service_spec.rb5
-rw-r--r--spec/support/shared_examples/services/metrics/dashboard_shared_examples.rb10
11 files changed, 73 insertions, 50 deletions
diff --git a/spec/controllers/projects/blob_controller_spec.rb b/spec/controllers/projects/blob_controller_spec.rb
index 9fdaa728fd7..ad04c6e61e8 100644
--- a/spec/controllers/projects/blob_controller_spec.rb
+++ b/spec/controllers/projects/blob_controller_spec.rb
@@ -118,32 +118,6 @@ describe Projects::BlobController do
end
end
end
-
- context 'when there is an artifact with code navigation data' do
- let!(:pipeline) { create(:ci_pipeline, project: project, sha: project.commit.id) }
- let!(:job) { create(:ci_build, pipeline: pipeline, name: Ci::Build::CODE_NAVIGATION_JOB_NAME) }
- let!(:artifact) { create(:ci_job_artifact, :lsif, job: job) }
-
- let(:id) { 'master/README.md' }
-
- it 'assigns code_navigation_build variable' do
- request
-
- expect(assigns[:code_navigation_build]).to eq(job)
- end
-
- context 'when code_navigation feature is disabled' do
- before do
- stub_feature_flags(code_navigation: false)
- end
-
- it 'does not assign code_navigation_build variable' do
- request
-
- expect(assigns[:code_navigation_build]).to be_nil
- end
- end
- end
end
describe 'GET diff' do
diff --git a/spec/lib/banzai/filter/issuable_state_filter_spec.rb b/spec/lib/banzai/filter/issuable_state_filter_spec.rb
index cb431df7551..5950b6878ef 100644
--- a/spec/lib/banzai/filter/issuable_state_filter_spec.rb
+++ b/spec/lib/banzai/filter/issuable_state_filter_spec.rb
@@ -156,20 +156,6 @@ describe Banzai::Filter::IssuableStateFilter do
expect(doc.css('a').last.text).to eq(merge_request.to_reference)
end
- it 'ignores reopened merge request references' do
- merge_request = create_merge_request(:opened)
-
- link = create_link(
- merge_request.to_reference,
- merge_request: merge_request.id,
- reference_type: 'merge_request'
- )
-
- doc = filter(link, context)
-
- expect(doc.css('a').last.text).to eq(merge_request.to_reference)
- end
-
it 'ignores locked merge request references' do
merge_request = create_merge_request(:locked)
diff --git a/spec/lib/gitlab/code_navigation_path_spec.rb b/spec/lib/gitlab/code_navigation_path_spec.rb
new file mode 100644
index 00000000000..cafe362c8c7
--- /dev/null
+++ b/spec/lib/gitlab/code_navigation_path_spec.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe Gitlab::CodeNavigationPath do
+ context 'when there is an artifact with code navigation data' do
+ let(:project) { create(:project, :repository) }
+ let(:sha) { project.commit.id }
+ let(:build_name) { Gitlab::CodeNavigationPath::CODE_NAVIGATION_JOB_NAME }
+ let(:path) { 'lib/app.rb' }
+ let!(:pipeline) { create(:ci_pipeline, project: project, sha: sha) }
+ let!(:job) { create(:ci_build, pipeline: pipeline, name: build_name) }
+ let!(:artifact) { create(:ci_job_artifact, :lsif, job: job) }
+
+ subject { described_class.new(project, sha).full_json_path_for(path) }
+
+ it 'assigns code_navigation_build variable' do
+ expect(subject).to eq("/#{project.full_path}/-/jobs/#{job.id}/artifacts/raw/lsif/#{path}.json")
+ end
+
+ context 'when code_navigation feature is disabled' do
+ before do
+ stub_feature_flags(code_navigation: false)
+ end
+
+ it 'does not assign code_navigation_build variable' do
+ expect(subject).to be_nil
+ end
+ end
+ end
+end
diff --git a/spec/serializers/diff_file_entity_spec.rb b/spec/serializers/diff_file_entity_spec.rb
index 3e341a58a15..e3ecd72b275 100644
--- a/spec/serializers/diff_file_entity_spec.rb
+++ b/spec/serializers/diff_file_entity_spec.rb
@@ -5,7 +5,7 @@ require 'spec_helper'
describe DiffFileEntity do
include RepoHelpers
- let(:project) { create(:project, :repository) }
+ let_it_be(:project) { create(:project, :repository) }
let(:repository) { project.repository }
let(:commit) { project.commit(sample_commit.id) }
let(:diff_refs) { commit.diff_refs }
@@ -21,10 +21,11 @@ describe DiffFileEntity do
end
context 'when there is a merge request' do
+ let_it_be(:merge_request) { create(:merge_request, source_project: project, target_project: project) }
let(:user) { create(:user) }
+ let(:code_navigation_path) { Gitlab::CodeNavigationPath.new(project, project.commit.sha) }
let(:request) { EntityRequest.new(project: project, current_user: user) }
- let(:merge_request) { create(:merge_request, source_project: project, target_project: project) }
- let(:entity) { described_class.new(diff_file, options.merge(request: request, merge_request: merge_request)) }
+ let(:entity) { described_class.new(diff_file, options.merge(request: request, merge_request: merge_request, code_navigation_path: code_navigation_path)) }
let(:exposed_urls) { %i(edit_path view_path context_lines_path) }
it_behaves_like 'diff file entity'
@@ -32,6 +33,7 @@ describe DiffFileEntity do
it 'exposes additional attributes' do
expect(subject).to include(*exposed_urls)
expect(subject).to include(:replaced_view_path)
+ expect(subject).to include(:code_navigation_path)
end
it 'points all urls to merge request target project' do
diff --git a/spec/serializers/diffs_entity_spec.rb b/spec/serializers/diffs_entity_spec.rb
index 59acbdac3d0..bb4ac5f9608 100644
--- a/spec/serializers/diffs_entity_spec.rb
+++ b/spec/serializers/diffs_entity_spec.rb
@@ -23,7 +23,7 @@ describe DiffsEntity do
:start_version, :latest_diff, :latest_version_path,
:added_lines, :removed_lines, :render_overflow_warning,
:email_patch_path, :plain_diff_path, :diff_files,
- :merge_request_diffs
+ :merge_request_diffs, :definition_path_prefix
)
end
end
diff --git a/spec/serializers/diffs_metadata_entity_spec.rb b/spec/serializers/diffs_metadata_entity_spec.rb
index 86438bd59d7..a6bf9a7700e 100644
--- a/spec/serializers/diffs_metadata_entity_spec.rb
+++ b/spec/serializers/diffs_metadata_entity_spec.rb
@@ -28,8 +28,8 @@ describe DiffsMetadataEntity do
:start_version, :latest_diff, :latest_version_path,
:added_lines, :removed_lines, :render_overflow_warning,
:email_patch_path, :plain_diff_path,
- :merge_request_diffs,
- :context_commits,
+ :merge_request_diffs, :context_commits,
+ :definition_path_prefix,
# Attributes
:diff_files
)
diff --git a/spec/services/metrics/dashboard/custom_dashboard_service_spec.rb b/spec/services/metrics/dashboard/custom_dashboard_service_spec.rb
index 9458df3dca0..4966b83bbab 100644
--- a/spec/services/metrics/dashboard/custom_dashboard_service_spec.rb
+++ b/spec/services/metrics/dashboard/custom_dashboard_service_spec.rb
@@ -16,10 +16,20 @@ describe Metrics::Dashboard::CustomDashboardService, :use_clean_rails_memory_sto
describe '#get_dashboard' do
let(:dashboard_path) { '.gitlab/dashboards/test.yml' }
let(:service_params) { [project, user, { environment: environment, dashboard_path: dashboard_path }] }
- let(:service_call) { described_class.new(*service_params).get_dashboard }
+ let(:service_call) { subject.get_dashboard }
+
+ subject { described_class.new(*service_params) }
context 'when the dashboard does not exist' do
it_behaves_like 'misconfigured dashboard service response', :not_found
+
+ it 'does not update gitlab_metrics_dashboard_processing_time_ms metric', :prometheus do
+ service_call
+ metric = subject.send(:processing_time_metric)
+ labels = subject.send(:processing_time_metric_labels)
+
+ expect(metric.get(labels)).to eq(0)
+ end
end
it_behaves_like 'raises error for users with insufficient permissions'
@@ -28,6 +38,7 @@ describe Metrics::Dashboard::CustomDashboardService, :use_clean_rails_memory_sto
let(:project) { project_with_dashboard(dashboard_path) }
it_behaves_like 'valid dashboard service response'
+ it_behaves_like 'updates gitlab_metrics_dashboard_processing_time_ms metric'
it 'caches the unprocessed dashboard for subsequent calls' do
expect_any_instance_of(described_class)
diff --git a/spec/services/metrics/dashboard/pod_dashboard_service_spec.rb b/spec/services/metrics/dashboard/pod_dashboard_service_spec.rb
index 36ca6f882fa..1e62a5504a9 100644
--- a/spec/services/metrics/dashboard/pod_dashboard_service_spec.rb
+++ b/spec/services/metrics/dashboard/pod_dashboard_service_spec.rb
@@ -36,9 +36,12 @@ describe Metrics::Dashboard::PodDashboardService, :use_clean_rails_memory_store_
describe '#get_dashboard' do
let(:dashboard_path) { described_class::DASHBOARD_PATH }
let(:service_params) { [project, user, { environment: environment, dashboard_path: dashboard_path }] }
- let(:service_call) { described_class.new(*service_params).get_dashboard }
+ let(:service_call) { subject.get_dashboard }
+
+ subject { described_class.new(*service_params) }
it_behaves_like 'valid dashboard service response'
it_behaves_like 'caches the unprocessed dashboard for subsequent calls'
+ it_behaves_like 'updates gitlab_metrics_dashboard_processing_time_ms metric'
end
end
diff --git a/spec/services/metrics/dashboard/self_monitoring_dashboard_service_spec.rb b/spec/services/metrics/dashboard/self_monitoring_dashboard_service_spec.rb
index 9ee5b06b410..6c9a380a470 100644
--- a/spec/services/metrics/dashboard/self_monitoring_dashboard_service_spec.rb
+++ b/spec/services/metrics/dashboard/self_monitoring_dashboard_service_spec.rb
@@ -16,11 +16,14 @@ describe Metrics::Dashboard::SelfMonitoringDashboardService, :use_clean_rails_me
describe '#get_dashboard' do
let(:service_params) { [project, user, { environment: environment }] }
- let(:service_call) { described_class.new(*service_params).get_dashboard }
+ let(:service_call) { subject.get_dashboard }
+
+ subject { described_class.new(*service_params) }
it_behaves_like 'valid dashboard service response'
it_behaves_like 'raises error for users with insufficient permissions'
it_behaves_like 'caches the unprocessed dashboard for subsequent calls'
+ it_behaves_like 'updates gitlab_metrics_dashboard_processing_time_ms metric'
end
describe '.all_dashboard_paths' do
diff --git a/spec/services/metrics/dashboard/system_dashboard_service_spec.rb b/spec/services/metrics/dashboard/system_dashboard_service_spec.rb
index 1956f9b563b..7d58501ae3f 100644
--- a/spec/services/metrics/dashboard/system_dashboard_service_spec.rb
+++ b/spec/services/metrics/dashboard/system_dashboard_service_spec.rb
@@ -16,11 +16,14 @@ describe Metrics::Dashboard::SystemDashboardService, :use_clean_rails_memory_sto
describe '#get_dashboard' do
let(:dashboard_path) { described_class::DASHBOARD_PATH }
let(:service_params) { [project, user, { environment: environment, dashboard_path: dashboard_path }] }
- let(:service_call) { described_class.new(*service_params).get_dashboard }
+ let(:service_call) { subject.get_dashboard }
+
+ subject { described_class.new(*service_params) }
it_behaves_like 'valid dashboard service response'
it_behaves_like 'raises error for users with insufficient permissions'
it_behaves_like 'caches the unprocessed dashboard for subsequent calls'
+ it_behaves_like 'updates gitlab_metrics_dashboard_processing_time_ms metric'
context 'when called with a non-system dashboard' do
let(:dashboard_path) { 'garbage/dashboard/path' }
diff --git a/spec/support/shared_examples/services/metrics/dashboard_shared_examples.rb b/spec/support/shared_examples/services/metrics/dashboard_shared_examples.rb
index bcd69b9e4f6..90fcac0e55c 100644
--- a/spec/support/shared_examples/services/metrics/dashboard_shared_examples.rb
+++ b/spec/support/shared_examples/services/metrics/dashboard_shared_examples.rb
@@ -118,3 +118,13 @@ RSpec.shared_examples 'misconfigured dashboard service response with stepable' d
expect(result[:message]).to eq(message) if message
end
end
+
+RSpec.shared_examples 'updates gitlab_metrics_dashboard_processing_time_ms metric' do
+ specify :prometheus do
+ service_call
+ metric = subject.send(:processing_time_metric)
+ labels = subject.send(:processing_time_metric_labels)
+
+ expect(metric.get(labels)).to be > 0
+ end
+end