diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-03-16 21:18:33 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-03-16 21:18:33 +0300 |
commit | f64a639bcfa1fc2bc89ca7db268f594306edfd7c (patch) | |
tree | a2c3c2ebcc3b45e596949db485d6ed18ffaacfa1 /spec/requests/projects | |
parent | bfbc3e0d6583ea1a91f627528bedc3d65ba4b10f (diff) |
Add latest changes from gitlab-org/gitlab@13-10-stable-eev13.10.0-rc40
Diffstat (limited to 'spec/requests/projects')
-rw-r--r-- | spec/requests/projects/merge_requests/content_spec.rb | 41 | ||||
-rw-r--r-- | spec/requests/projects/noteable_notes_spec.rb | 11 |
2 files changed, 51 insertions, 1 deletions
diff --git a/spec/requests/projects/merge_requests/content_spec.rb b/spec/requests/projects/merge_requests/content_spec.rb new file mode 100644 index 00000000000..7e5ec6f64c4 --- /dev/null +++ b/spec/requests/projects/merge_requests/content_spec.rb @@ -0,0 +1,41 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe 'merge request content spec' do + let_it_be(:project) { create(:project, :repository) } + let_it_be(:user) { create(:user) } + let_it_be(:merge_request) { create(:merge_request, :with_head_pipeline, target_project: project, source_project: project) } + let_it_be(:ci_build) { create(:ci_build, :artifacts, pipeline: merge_request.head_pipeline) } + + before do + sign_in(user) + project.add_maintainer(user) + end + + shared_examples 'cached widget request' do + it 'avoids N+1 queries when multiple job artifacts are present' do + control = ActiveRecord::QueryRecorder.new(skip_cached: false) do + get cached_widget_project_json_merge_request_path(project, merge_request, format: :json) + end + + create_list(:ci_build, 10, :artifacts, pipeline: merge_request.head_pipeline) + + expect do + get cached_widget_project_json_merge_request_path(project, merge_request, format: :json) + end.not_to exceed_query_limit(control) + end + end + + describe 'GET cached_widget' do + it_behaves_like 'cached widget request' + + context 'with non_public_artifacts disabled' do + before do + stub_feature_flags(non_public_artifacts: false) + end + + it_behaves_like 'cached widget request' + end + end +end diff --git a/spec/requests/projects/noteable_notes_spec.rb b/spec/requests/projects/noteable_notes_spec.rb index 5ae2aadaa84..2bf1ffb2edc 100644 --- a/spec/requests/projects/noteable_notes_spec.rb +++ b/spec/requests/projects/noteable_notes_spec.rb @@ -18,7 +18,9 @@ RSpec.describe 'Project noteable notes' do login_as(user) end - it 'does not set a Gitlab::EtagCaching ETag' do + it 'does not set a Gitlab::EtagCaching ETag if there is a note' do + create(:note_on_merge_request, noteable: merge_request, project: merge_request.project) + get notes_path expect(response).to have_gitlab_http_status(:ok) @@ -27,5 +29,12 @@ RSpec.describe 'Project noteable notes' do # interfere with notes pagination expect(response_etag).not_to eq(stored_etag) end + + it 'sets a Gitlab::EtagCaching ETag if there is no note' do + get notes_path + + expect(response).to have_gitlab_http_status(:ok) + expect(response_etag).to eq(stored_etag) + end end end |