diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-02 12:08:14 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-02 12:08:14 +0300 |
commit | ade18c9d68d5a2e6c6e28ef7e9d3add3b3491ace (patch) | |
tree | cf4154332fc95283f58cccb1383e43b40485d91d /spec | |
parent | ba836d98593d68d8d6c22c540e31c8031a786bd8 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
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 |