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>2024-01-05 00:07:37 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2024-01-05 00:07:37 +0300
commit808b8561f4e75b2db7c7e94a6c7651efb546048b (patch)
tree2cb7546939b56fef3a73a52dd8790de55f0fc0e4 /spec/requests
parentcc514c362bcd4b657bf6a6d1d37f5305952df363 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/requests')
-rw-r--r--spec/requests/api/ci/jobs_spec.rb8
-rw-r--r--spec/requests/api/ci/pipeline_schedules_spec.rb6
-rw-r--r--spec/requests/api/ci/pipelines_spec.rb12
-rw-r--r--spec/requests/api/ci/runners_spec.rb2
-rw-r--r--spec/requests/api/commits_spec.rb8
-rw-r--r--spec/requests/api/deploy_keys_spec.rb4
-rw-r--r--spec/requests/api/deployments_spec.rb4
-rw-r--r--spec/requests/api/feature_flags_spec.rb4
-rw-r--r--spec/requests/api/graphql/achievements/user_achievements_query_spec.rb6
-rw-r--r--spec/requests/api/graphql/projects/projects_spec.rb6
-rw-r--r--spec/requests/api/graphql/user/user_achievements_query_spec.rb6
-rw-r--r--spec/requests/api/graphql/work_item_spec.rb4
-rw-r--r--spec/requests/api/group_milestones_spec.rb4
-rw-r--r--spec/requests/api/groups_spec.rb24
-rw-r--r--spec/requests/api/invitations_spec.rb10
-rw-r--r--spec/requests/api/issue_links_spec.rb4
-rw-r--r--spec/requests/api/issues/get_project_issues_spec.rb12
-rw-r--r--spec/requests/api/merge_requests_spec.rb4
-rw-r--r--spec/requests/api/project_import_spec.rb4
-rw-r--r--spec/requests/api/projects_spec.rb4
-rw-r--r--spec/requests/api/releases_spec.rb12
-rw-r--r--spec/requests/api/users_spec.rb30
-rw-r--r--spec/requests/groups/milestones_controller_spec.rb10
-rw-r--r--spec/requests/groups/registry/repositories_controller_spec.rb4
-rw-r--r--spec/requests/projects/pipelines_controller_spec.rb18
-rw-r--r--spec/requests/search_controller_spec.rb4
26 files changed, 108 insertions, 106 deletions
diff --git a/spec/requests/api/ci/jobs_spec.rb b/spec/requests/api/ci/jobs_spec.rb
index 941aa3734a3..9e1203bc720 100644
--- a/spec/requests/api/ci/jobs_spec.rb
+++ b/spec/requests/api/ci/jobs_spec.rb
@@ -133,12 +133,12 @@ RSpec.describe API::Ci::Jobs, feature_category: :continuous_integration do
end
it 'avoids N+1 queries', :skip_before_request do
- control_count = ActiveRecord::QueryRecorder.new { perform_request }.count
+ control = ActiveRecord::QueryRecorder.new { perform_request }
running_job = create(:ci_build, :running, project: project, user: user, pipeline: pipeline, artifacts_expire_at: 1.day.since)
running_job.save!
- expect { perform_request }.not_to exceed_query_limit(control_count)
+ expect { perform_request }.not_to exceed_query_limit(control)
end
it_behaves_like 'returns common pipeline data' do
@@ -432,7 +432,7 @@ RSpec.describe API::Ci::Jobs, feature_category: :continuous_integration do
first_build.user = create(:user)
first_build.save!
- control_count = ActiveRecord::QueryRecorder.new { go }.count
+ control = ActiveRecord::QueryRecorder.new { go }
second_pipeline = create(:ci_empty_pipeline, project: project, sha: project.commit.id, ref: project.default_branch)
second_build = create(:ci_build, :trace_artifact, :artifacts, :test_reports, pipeline: second_pipeline)
@@ -440,7 +440,7 @@ RSpec.describe API::Ci::Jobs, feature_category: :continuous_integration do
second_build.user = create(:user)
second_build.save!
- expect { go }.not_to exceed_query_limit(control_count)
+ expect { go }.not_to exceed_query_limit(control)
end
context 'filter project with one scope element' do
diff --git a/spec/requests/api/ci/pipeline_schedules_spec.rb b/spec/requests/api/ci/pipeline_schedules_spec.rb
index f534b093b7c..588991096b5 100644
--- a/spec/requests/api/ci/pipeline_schedules_spec.rb
+++ b/spec/requests/api/ci/pipeline_schedules_spec.rb
@@ -42,15 +42,15 @@ RSpec.describe API::Ci::PipelineSchedules, feature_category: :continuous_integra
# We need at least two users to trigger a preload for that relation.
create_pipeline_schedules(1)
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
get api("/projects/#{project.id}/pipeline_schedules", developer)
- end.count
+ end
create_pipeline_schedules(5)
expect do
get api("/projects/#{project.id}/pipeline_schedules", developer)
- end.not_to exceed_query_limit(control_count)
+ end.not_to exceed_query_limit(control)
end
%w[active inactive].each do |target|
diff --git a/spec/requests/api/ci/pipelines_spec.rb b/spec/requests/api/ci/pipelines_spec.rb
index eef125e1bc3..ef169dbe872 100644
--- a/spec/requests/api/ci/pipelines_spec.rb
+++ b/spec/requests/api/ci/pipelines_spec.rb
@@ -471,15 +471,15 @@ RSpec.describe API::Ci::Pipelines, feature_category: :continuous_integration do
end
it 'avoids N+1 queries' do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
get api("/projects/#{project.id}/pipelines/#{pipeline.id}/jobs", api_user), params: query
- end.count
+ end
create_list(:ci_build, 3, :trace_artifact, :artifacts, :test_reports, pipeline: pipeline)
expect do
get api("/projects/#{project.id}/pipelines/#{pipeline.id}/jobs", api_user), params: query
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
context 'pipeline has retried jobs' do
@@ -671,15 +671,15 @@ RSpec.describe API::Ci::Pipelines, feature_category: :continuous_integration do
end
it 'avoids N+1 queries' do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
get api("/projects/#{project.id}/pipelines/#{pipeline.id}/bridges", api_user), params: query
- end.count
+ end
3.times { create_bridge(pipeline) }
expect do
get api("/projects/#{project.id}/pipelines/#{pipeline.id}/bridges", api_user), params: query
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
end
diff --git a/spec/requests/api/ci/runners_spec.rb b/spec/requests/api/ci/runners_spec.rb
index 187880e16a4..b4394f47105 100644
--- a/spec/requests/api/ci/runners_spec.rb
+++ b/spec/requests/api/ci/runners_spec.rb
@@ -965,7 +965,7 @@ RSpec.describe API::Ci::Runners, :aggregate_failures, feature_category: :fleet_v
expect do
get api("/runners/#{shared_runner.id}/jobs", admin, admin_mode: true)
- end.not_to exceed_query_limit(control.count)
+ end.not_to exceed_query_limit(control)
end
it 'batches loading of commits' do
diff --git a/spec/requests/api/commits_spec.rb b/spec/requests/api/commits_spec.rb
index 4ec5d195ff8..67388f657f4 100644
--- a/spec/requests/api/commits_spec.rb
+++ b/spec/requests/api/commits_spec.rb
@@ -1842,11 +1842,11 @@ RSpec.describe API::Commits, feature_category: :source_code_management do
it 'are returned without N + 1' do
get api(route, current_user) # warm up the cache
- control_count = ActiveRecord::QueryRecorder.new { get api(route, current_user) }.count
+ control = ActiveRecord::QueryRecorder.new { get api(route, current_user) }
create(:diff_note_on_commit, project: project, author: create(:user))
- expect { get api(route, current_user) }.not_to exceed_query_limit(control_count)
+ expect { get api(route, current_user) }.not_to exceed_query_limit(control)
end
end
end
@@ -2386,11 +2386,11 @@ RSpec.describe API::Commits, feature_category: :source_code_management do
it 'returns multiple merge requests without N + 1' do
perform_request(user)
- control_count = ActiveRecord::QueryRecorder.new { perform_request(user) }.count
+ control = ActiveRecord::QueryRecorder.new { perform_request(user) }
create(:merge_request, :closed, source_project: project, source_branch: 'master', target_branch: 'feature')
- expect { perform_request(user) }.not_to exceed_query_limit(control_count)
+ expect { perform_request(user) }.not_to exceed_query_limit(control)
end
end
diff --git a/spec/requests/api/deploy_keys_spec.rb b/spec/requests/api/deploy_keys_spec.rb
index 30c345ef458..ca19a97ae49 100644
--- a/spec/requests/api/deploy_keys_spec.rb
+++ b/spec/requests/api/deploy_keys_spec.rb
@@ -135,11 +135,11 @@ RSpec.describe API::DeployKeys, :aggregate_failures, feature_category: :continuo
it 'returns multiple deploy keys without N + 1' do
perform_request
- control_count = ActiveRecord::QueryRecorder.new { perform_request }.count
+ control = ActiveRecord::QueryRecorder.new { perform_request }
create(:deploy_key, public: true, projects: [project], user: maintainer)
- expect { perform_request }.not_to exceed_query_limit(control_count)
+ expect { perform_request }.not_to exceed_query_limit(control)
end
end
diff --git a/spec/requests/api/deployments_spec.rb b/spec/requests/api/deployments_spec.rb
index 5a8e1649e75..f68307df779 100644
--- a/spec/requests/api/deployments_spec.rb
+++ b/spec/requests/api/deployments_spec.rb
@@ -143,11 +143,11 @@ RSpec.describe API::Deployments, feature_category: :continuous_delivery do
it 'returns multiple deployments without N + 1' do
perform_request # warm up the cache
- control_count = ActiveRecord::QueryRecorder.new { perform_request }.count
+ control = ActiveRecord::QueryRecorder.new { perform_request }
create(:deployment, :success, project: project, deployable: build, iid: 21, ref: 'master')
- expect { perform_request }.not_to exceed_query_limit(control_count)
+ expect { perform_request }.not_to exceed_query_limit(control)
end
end
diff --git a/spec/requests/api/feature_flags_spec.rb b/spec/requests/api/feature_flags_spec.rb
index 4fb0dfbb070..2e513194627 100644
--- a/spec/requests/api/feature_flags_spec.rb
+++ b/spec/requests/api/feature_flags_spec.rb
@@ -67,12 +67,12 @@ RSpec.describe API::FeatureFlags, feature_category: :feature_flags do
end
it 'does not have N+1 problem' do
- control_count = ActiveRecord::QueryRecorder.new { subject }
+ control = ActiveRecord::QueryRecorder.new { subject }
create_list(:operations_feature_flag, 3, project: project)
expect { get api("/projects/#{project.id}/feature_flags", user) }
- .not_to exceed_query_limit(control_count)
+ .not_to exceed_query_limit(control)
end
it_behaves_like 'check user permission'
diff --git a/spec/requests/api/graphql/achievements/user_achievements_query_spec.rb b/spec/requests/api/graphql/achievements/user_achievements_query_spec.rb
index 32048ea1432..94678bd18da 100644
--- a/spec/requests/api/graphql/achievements/user_achievements_query_spec.rb
+++ b/spec/requests/api/graphql/achievements/user_achievements_query_spec.rb
@@ -89,14 +89,14 @@ RSpec.describe 'UserAchievements', feature_category: :user_profile do
end
it 'can lookahead to eliminate N+1 queries', :use_clean_rails_memory_store_caching do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
post_graphql(query, current_user: user)
- end.count
+ end
user2 = create(:user)
create(:user_achievement, achievement: achievement, user: user2)
- expect { post_graphql(query, current_user: user) }.not_to exceed_all_query_limit(control_count)
+ expect { post_graphql(query, current_user: user) }.not_to exceed_all_query_limit(control)
end
context 'when the achievements feature flag is disabled' do
diff --git a/spec/requests/api/graphql/projects/projects_spec.rb b/spec/requests/api/graphql/projects/projects_spec.rb
index 84b8c2285f0..dfebcb7c42c 100644
--- a/spec/requests/api/graphql/projects/projects_spec.rb
+++ b/spec/requests/api/graphql/projects/projects_spec.rb
@@ -45,14 +45,14 @@ RSpec.describe 'getting a collection of projects', feature_category: :source_cod
it 'avoids N+1 queries', :use_sql_query_cache, :clean_gitlab_redis_cache do
post_graphql(single_project_query, current_user: current_user)
- query_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
post_graphql(single_project_query, current_user: current_user)
- end.count
+ end
# There is an N+1 query for max_member_access_for_user_ids
expect do
post_graphql(query, current_user: current_user)
- end.not_to exceed_all_query_limit(query_count + 5)
+ end.not_to exceed_all_query_limit(control).with_threshold(5)
end
it 'returns the expected projects' do
diff --git a/spec/requests/api/graphql/user/user_achievements_query_spec.rb b/spec/requests/api/graphql/user/user_achievements_query_spec.rb
index 2e6c3dcba61..ccff5bdf919 100644
--- a/spec/requests/api/graphql/user/user_achievements_query_spec.rb
+++ b/spec/requests/api/graphql/user/user_achievements_query_spec.rb
@@ -60,14 +60,14 @@ RSpec.describe 'UserAchievements', feature_category: :user_profile do
end
it 'can lookahead to eliminate N+1 queries', :use_clean_rails_memory_store_caching do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
post_graphql(query, current_user: user)
- end.count
+ end
achievement2 = create(:achievement, namespace: group)
create_list(:user_achievement, 2, achievement: achievement2, user: user)
- expect { post_graphql(query, current_user: user) }.not_to exceed_all_query_limit(control_count)
+ expect { post_graphql(query, current_user: user) }.not_to exceed_all_query_limit(control)
end
context 'when the achievements feature flag is disabled for a namespace' do
diff --git a/spec/requests/api/graphql/work_item_spec.rb b/spec/requests/api/graphql/work_item_spec.rb
index fe77b7ae736..c6d44b057a7 100644
--- a/spec/requests/api/graphql/work_item_spec.rb
+++ b/spec/requests/api/graphql/work_item_spec.rb
@@ -199,7 +199,7 @@ RSpec.describe 'Query.work_item(id)', feature_category: :team_planning do
it 'avoids N+1 queries' do
post_graphql(query, current_user: current_user) # warm up
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
post_graphql(query, current_user: current_user)
end
@@ -207,7 +207,7 @@ RSpec.describe 'Query.work_item(id)', feature_category: :team_planning do
expect do
post_graphql(query, current_user: current_user)
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
context 'when user is guest' do
diff --git a/spec/requests/api/group_milestones_spec.rb b/spec/requests/api/group_milestones_spec.rb
index 82a4311f7d0..7b4075b3aeb 100644
--- a/spec/requests/api/group_milestones_spec.rb
+++ b/spec/requests/api/group_milestones_spec.rb
@@ -141,11 +141,11 @@ RSpec.describe API::GroupMilestones, feature_category: :team_planning do
it 'returns multiple issues without performing N + 1' do
perform_request
- control_count = ActiveRecord::QueryRecorder.new { perform_request }.count
+ control = ActiveRecord::QueryRecorder.new { perform_request }
create(:issue, project: project, milestone: milestone)
- expect { perform_request }.not_to exceed_query_limit(control_count)
+ expect { perform_request }.not_to exceed_query_limit(control)
end
end
diff --git a/spec/requests/api/groups_spec.rb b/spec/requests/api/groups_spec.rb
index d1158cba16e..6b949962e53 100644
--- a/spec/requests/api/groups_spec.rb
+++ b/spec/requests/api/groups_spec.rb
@@ -660,24 +660,24 @@ RSpec.describe API::Groups, feature_category: :groups_and_projects do
get api("/groups/#{group1.id}", user1)
expect(response).to have_gitlab_http_status(:ok)
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
get api("/groups/#{group1.id}", user1)
- end.count
+ end
create(:project, namespace: group1)
expect do
get api("/groups/#{group1.id}", user1)
- end.not_to exceed_query_limit(control_count)
+ end.not_to exceed_query_limit(control)
end
it 'avoids N+1 queries with shared group links' do
# setup at least 1 shared group, so that we record the queries that preload the nested associations too.
create(:group_group_link, shared_group: group1, shared_with_group: create(:group))
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
get api("/groups/#{group1.id}", user1)
- end.count
+ end
# setup "n" more shared groups
create(:group_group_link, shared_group: group1, shared_with_group: create(:group))
@@ -686,7 +686,7 @@ RSpec.describe API::Groups, feature_category: :groups_and_projects do
# test that no of queries for 1 shared group is same as for n shared groups
expect do
get api("/groups/#{group1.id}", user1)
- end.not_to exceed_query_limit(control_count)
+ end.not_to exceed_query_limit(control)
end
end
@@ -1364,15 +1364,15 @@ RSpec.describe API::Groups, feature_category: :groups_and_projects do
get api("/groups/#{group1.id}/projects", user1)
expect(response).to have_gitlab_http_status(:ok)
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
get api("/groups/#{group1.id}/projects", user1)
- end.count
+ end
create(:project, namespace: group1)
expect do
get api("/groups/#{group1.id}/projects", user1)
- end.not_to exceed_query_limit(control_count)
+ end.not_to exceed_query_limit(control)
end
end
@@ -1563,15 +1563,15 @@ RSpec.describe API::Groups, feature_category: :groups_and_projects do
subject
expect(response).to have_gitlab_http_status(:ok)
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
subject
- end.count
+ end
create(:project_group_link, project: create(:project), group: group1)
expect do
subject
- end.not_to exceed_query_limit(control_count)
+ end.not_to exceed_query_limit(control)
end
end
diff --git a/spec/requests/api/invitations_spec.rb b/spec/requests/api/invitations_spec.rb
index dc02e830027..60f3c4780eb 100644
--- a/spec/requests/api/invitations_spec.rb
+++ b/spec/requests/api/invitations_spec.rb
@@ -412,7 +412,7 @@ RSpec.describe API::Invitations, feature_category: :user_profile do
expect do
post invitations_url(project, maintainer), params: { email: emails, access_level: Member::DEVELOPER }
- end.not_to exceed_all_query_limit(control.count).with_threshold(unresolved_n_plus_ones)
+ end.not_to exceed_all_query_limit(control).with_threshold(unresolved_n_plus_ones)
end
it 'does not exceed expected queries count for user_ids', :request_store, :use_sql_query_cache do
@@ -430,7 +430,7 @@ RSpec.describe API::Invitations, feature_category: :user_profile do
expect do
post invitations_url(project, maintainer), params: { user_id: users.map(&:id).join(','), access_level: Member::DEVELOPER }
- end.not_to exceed_all_query_limit(control.count).with_threshold(unresolved_n_plus_ones)
+ end.not_to exceed_all_query_limit(control).with_threshold(unresolved_n_plus_ones)
end
it 'does not exceed expected queries count with secondary emails', :request_store, :use_sql_query_cache do
@@ -453,7 +453,7 @@ RSpec.describe API::Invitations, feature_category: :user_profile do
expect do
post invitations_url(project, maintainer), params: { email: emails, access_level: Member::DEVELOPER }
- end.not_to exceed_all_query_limit(control.count).with_threshold(unresolved_n_plus_ones)
+ end.not_to exceed_all_query_limit(control).with_threshold(unresolved_n_plus_ones)
end
end
@@ -491,7 +491,7 @@ RSpec.describe API::Invitations, feature_category: :user_profile do
expect do
post invitations_url(group, maintainer), params: { email: emails, access_level: Member::DEVELOPER }
- end.not_to exceed_all_query_limit(control.count).with_threshold(unresolved_n_plus_ones)
+ end.not_to exceed_all_query_limit(control).with_threshold(unresolved_n_plus_ones)
end
it 'does not exceed expected queries count for secondary emails', :request_store, :use_sql_query_cache do
@@ -514,7 +514,7 @@ RSpec.describe API::Invitations, feature_category: :user_profile do
expect do
post invitations_url(group, maintainer), params: { email: emails, access_level: Member::DEVELOPER }
- end.not_to exceed_all_query_limit(control.count).with_threshold(unresolved_n_plus_ones)
+ end.not_to exceed_all_query_limit(control).with_threshold(unresolved_n_plus_ones)
end
end
diff --git a/spec/requests/api/issue_links_spec.rb b/spec/requests/api/issue_links_spec.rb
index fcb199a91a4..a4a9eca92b9 100644
--- a/spec/requests/api/issue_links_spec.rb
+++ b/spec/requests/api/issue_links_spec.rb
@@ -40,11 +40,11 @@ RSpec.describe API::IssueLinks, feature_category: :team_planning do
it 'returns multiple links without N + 1' do
perform_request(user)
- control_count = ActiveRecord::QueryRecorder.new { perform_request(user) }.count
+ control = ActiveRecord::QueryRecorder.new { perform_request(user) }
create(:issue_link, source: issue, target: create(:issue, project: project))
- expect { perform_request(user) }.not_to exceed_query_limit(control_count)
+ expect { perform_request(user) }.not_to exceed_query_limit(control)
end
end
end
diff --git a/spec/requests/api/issues/get_project_issues_spec.rb b/spec/requests/api/issues/get_project_issues_spec.rb
index 9e54ec08486..6719297f54f 100644
--- a/spec/requests/api/issues/get_project_issues_spec.rb
+++ b/spec/requests/api/issues/get_project_issues_spec.rb
@@ -233,9 +233,9 @@ RSpec.describe API::Issues, feature_category: :team_planning do
issues = create_list(:issue, 3, project: project, closed_by: user)
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
get api("/projects/#{project.id}/issues", user)
- end.count
+ end
milestone = create(:milestone, project: project)
create(:issue, project: project, milestone: milestone, closed_by: create(:user))
@@ -245,7 +245,7 @@ RSpec.describe API::Issues, feature_category: :team_planning do
expect do
get api("/projects/#{project.id}/issues", user)
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
it 'returns 404 when project does not exist' do
@@ -361,9 +361,9 @@ RSpec.describe API::Issues, feature_category: :team_planning do
let(:label_c) { create(:label, title: 'bar', project: project) }
it 'avoids N+1 queries' do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
get api("/projects/#{project.id}/issues?with_labels_details=true", user)
- end.count
+ end
new_issue = create(:issue, project: project)
create(:label_link, label: label, target: new_issue)
@@ -372,7 +372,7 @@ RSpec.describe API::Issues, feature_category: :team_planning do
expect do
get api("/projects/#{project.id}/issues?with_labels_details=true", user)
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
end
diff --git a/spec/requests/api/merge_requests_spec.rb b/spec/requests/api/merge_requests_spec.rb
index 6000fa29dc4..6ba51080bf0 100644
--- a/spec/requests/api/merge_requests_spec.rb
+++ b/spec/requests/api/merge_requests_spec.rb
@@ -193,7 +193,7 @@ RSpec.describe API::MergeRequests, :aggregate_failures, feature_category: :sourc
control = ActiveRecord::QueryRecorder.new do
get api(path, user)
- end.count
+ end
mr = create(:merge_request)
create(:label_link, label: label, target: mr)
@@ -1232,7 +1232,7 @@ RSpec.describe API::MergeRequests, :aggregate_failures, feature_category: :sourc
it 'avoids N+1 queries', quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/330335' do
control = ActiveRecord::QueryRecorder.new do
get api("/projects/#{project.id}/merge_requests", user)
- end.count
+ end
create(:merge_request, author: user, assignees: [user], source_project: project, target_project: project, created_at: base_time)
diff --git a/spec/requests/api/project_import_spec.rb b/spec/requests/api/project_import_spec.rb
index 49471b98eba..a73f3366dcb 100644
--- a/spec/requests/api/project_import_spec.rb
+++ b/spec/requests/api/project_import_spec.rb
@@ -62,9 +62,9 @@ RSpec.describe API::ProjectImport, :aggregate_failures, feature_category: :impor
it_behaves_like 'requires import source to be enabled'
it 'executes a limited number of queries', :use_clean_rails_redis_caching do
- control_count = ActiveRecord::QueryRecorder.new { subject }.count
+ control = ActiveRecord::QueryRecorder.new { subject }
- expect(control_count).to be <= 111
+ expect(control.count).to be <= 111
end
it 'schedules an import using a namespace' do
diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb
index b8e029385e3..cf6152a9b67 100644
--- a/spec/requests/api/projects_spec.rb
+++ b/spec/requests/api/projects_spec.rb
@@ -1152,7 +1152,7 @@ RSpec.describe API::Projects, :aggregate_failures, feature_category: :groups_and
expect do
request
- end.not_to exceed_all_query_limit(control.count)
+ end.not_to exceed_all_query_limit(control)
end
end
@@ -3799,7 +3799,7 @@ RSpec.describe API::Projects, :aggregate_failures, feature_category: :groups_and
expect do
post api("/projects/#{project.id}/import_project_members/#{measure_project.id}", user)
- end.not_to exceed_all_query_limit(control.count).with_threshold(unresolved_n_plus_ones)
+ end.not_to exceed_all_query_limit(control).with_threshold(unresolved_n_plus_ones)
end
it 'returns 200 when it successfully imports members from another project' do
diff --git a/spec/requests/api/releases_spec.rb b/spec/requests/api/releases_spec.rb
index 493dc4e72c6..0c811a21fb0 100644
--- a/spec/requests/api/releases_spec.rb
+++ b/spec/requests/api/releases_spec.rb
@@ -156,9 +156,9 @@ RSpec.describe API::Releases, :aggregate_failures, feature_category: :release_or
create(:release, :with_evidence, project: project, tag: 'v0.1', author: maintainer)
create(:release_link, release: project.releases.first)
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
get api("/projects/#{project.id}/releases", maintainer)
- end.count
+ end
create_list(:release, 2, :with_evidence, project: project, author: maintainer)
create_list(:release, 2, project: project)
@@ -167,7 +167,7 @@ RSpec.describe API::Releases, :aggregate_failures, feature_category: :release_or
expect do
get api("/projects/#{project.id}/releases", maintainer)
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
it 'serializes releases for the first time and read cached data from the second time' do
@@ -1715,9 +1715,9 @@ RSpec.describe API::Releases, :aggregate_failures, feature_category: :release_or
subject
expect(response).to have_gitlab_http_status(:ok)
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
subject
- end.count
+ end
subgroups = create_list(:group, 10, parent: group1)
projects = create_list(:project, 10, namespace: subgroups[0])
@@ -1725,7 +1725,7 @@ RSpec.describe API::Releases, :aggregate_failures, feature_category: :release_or
expect do
subject
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
end
end
diff --git a/spec/requests/api/users_spec.rb b/spec/requests/api/users_spec.rb
index 86c4e04ef71..de3460208b7 100644
--- a/spec/requests/api/users_spec.rb
+++ b/spec/requests/api/users_spec.rb
@@ -265,9 +265,9 @@ RSpec.describe API::Users, :aggregate_failures, feature_category: :user_profile
end
it 'avoids N+1 queries when requested by admin' do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
get api(path, admin)
- end.count
+ end
create_list(:user, 3)
@@ -277,19 +277,19 @@ RSpec.describe API::Users, :aggregate_failures, feature_category: :user_profile
expect do
get api(path, admin)
- end.not_to exceed_all_query_limit(control_count + 3)
+ end.not_to exceed_all_query_limit(control).with_threshold(3)
end
it 'avoids N+1 queries when requested by a regular user' do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
get api(path, user)
- end.count
+ end
create_list(:user, 3)
expect do
get api(path, user)
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
end
@@ -2272,16 +2272,16 @@ RSpec.describe API::Users, :aggregate_failures, feature_category: :user_profile
it 'avoids N+1 queries' do
second_project.add_maintainer(user)
- control_count = ActiveRecord::QueryRecorder.new do
+ control = ActiveRecord::QueryRecorder.new do
get api(path, user)
- end.count
+ end
deploy_key = create(:deploy_key, user: second_user)
create(:deploy_keys_project, project: second_project, deploy_key_id: deploy_key.id)
expect do
get api(path, user)
- end.not_to exceed_query_limit(control_count)
+ end.not_to exceed_query_limit(control)
end
end
end
@@ -2328,15 +2328,15 @@ RSpec.describe API::Users, :aggregate_failures, feature_category: :user_profile
end
it 'avoids N+1 queries', :request_store do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
request
- end.count
+ end
create_list(:key, 2, user: user)
expect do
request
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
end
end
@@ -3044,15 +3044,15 @@ RSpec.describe API::Users, :aggregate_failures, feature_category: :user_profile
end
it 'avoids N+1 queries', :request_store do
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
request
- end.count
+ end
create_list(:key, 2, user: user)
expect do
request
- end.not_to exceed_all_query_limit(control_count)
+ end.not_to exceed_all_query_limit(control)
end
end
diff --git a/spec/requests/groups/milestones_controller_spec.rb b/spec/requests/groups/milestones_controller_spec.rb
index 54a25333c02..ed24ad6489f 100644
--- a/spec/requests/groups/milestones_controller_spec.rb
+++ b/spec/requests/groups/milestones_controller_spec.rb
@@ -18,14 +18,16 @@ RSpec.describe Groups::MilestonesController, feature_category: :team_planning do
public_project = create(:project, :public, :merge_requests_enabled, :issues_enabled, group: public_group)
create(:milestone, project: public_project)
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) { get group_milestones_path(public_group, format: :json) }.count
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ get group_milestones_path(public_group, format: :json)
+ end
projects = create_list(:project, 2, :public, :merge_requests_enabled, :issues_enabled, group: public_group)
projects.each do |project|
create(:milestone, project: project)
end
- expect { get group_milestones_path(public_group, format: :json) }.not_to exceed_all_query_limit(control_count)
+ expect { get group_milestones_path(public_group, format: :json) }.not_to exceed_all_query_limit(control)
expect(response).to have_gitlab_http_status(:ok)
milestones = json_response
@@ -66,11 +68,11 @@ RSpec.describe Groups::MilestonesController, feature_category: :team_planning do
it 'avoids N+1 database queries' do
perform_request # warm up the cache
- control_count = ActiveRecord::QueryRecorder.new { perform_request }.count
+ control = ActiveRecord::QueryRecorder.new { perform_request }
create(:merge_request, milestone: milestone, source_project: project, source_branch: 'fix')
- expect { perform_request }.not_to exceed_query_limit(control_count)
+ expect { perform_request }.not_to exceed_query_limit(control)
end
end
end
diff --git a/spec/requests/groups/registry/repositories_controller_spec.rb b/spec/requests/groups/registry/repositories_controller_spec.rb
index f54acf118bb..e4818676f81 100644
--- a/spec/requests/groups/registry/repositories_controller_spec.rb
+++ b/spec/requests/groups/registry/repositories_controller_spec.rb
@@ -20,13 +20,13 @@ RSpec.describe Groups::Registry::RepositoriesController, feature_category: :cont
create(:container_repository, project: project)
endpoint = group_container_registries_path(group, format: :json)
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) { get(endpoint) }.count
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) { get(endpoint) }
create_list(:project, 2, group: group).each do |project|
create_list(:container_repository, 2, project: project)
end
- expect { get(endpoint) }.not_to exceed_all_query_limit(control_count)
+ expect { get(endpoint) }.not_to exceed_all_query_limit(control)
# sanity check that response is 200
expect(response).to have_gitlab_http_status(:ok)
diff --git a/spec/requests/projects/pipelines_controller_spec.rb b/spec/requests/projects/pipelines_controller_spec.rb
index aa3fefdef14..8be4fecea04 100644
--- a/spec/requests/projects/pipelines_controller_spec.rb
+++ b/spec/requests/projects/pipelines_controller_spec.rb
@@ -25,14 +25,14 @@ RSpec.describe Projects::PipelinesController, feature_category: :continuous_inte
create_pipelines
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
get_pipelines_index
- end.count
+ end
create_pipelines
# There appears to be one extra query for Pipelines#has_warnings? for some reason
- expect { get_pipelines_index }.not_to exceed_all_query_limit(control_count + 1)
+ expect { get_pipelines_index }.not_to exceed_all_query_limit(control).with_threshold(1)
expect(response).to have_gitlab_http_status(:ok)
expect(json_response['pipelines'].count).to eq(11)
end
@@ -56,9 +56,9 @@ RSpec.describe Projects::PipelinesController, feature_category: :continuous_inte
it 'does not execute N+1 queries' do
request_build_stage
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
request_build_stage
- end.count
+ end
create(:ci_build, pipeline: pipeline, stage: 'build')
@@ -70,7 +70,7 @@ RSpec.describe Projects::PipelinesController, feature_category: :continuous_inte
status: :failed)
end
- expect { request_build_stage }.not_to exceed_all_query_limit(control_count)
+ expect { request_build_stage }.not_to exceed_all_query_limit(control)
expect(response).to have_gitlab_http_status(:ok)
end
@@ -134,14 +134,14 @@ RSpec.describe Projects::PipelinesController, feature_category: :continuous_inte
request_build_stage(retried: true)
- control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
+ control = ActiveRecord::QueryRecorder.new(skip_cached: false) do
request_build_stage(retried: true)
- end.count
+ end
create(:ci_build, :retried, :failed, pipeline: pipeline, stage: 'build')
create(:ci_build, :failed, pipeline: pipeline, stage: 'build')
- expect { request_build_stage(retried: true) }.not_to exceed_all_query_limit(control_count)
+ expect { request_build_stage(retried: true) }.not_to exceed_all_query_limit(control)
expect(response).to have_gitlab_http_status(:ok)
end
diff --git a/spec/requests/search_controller_spec.rb b/spec/requests/search_controller_spec.rb
index 365b20ad4aa..eaf11653256 100644
--- a/spec/requests/search_controller_spec.rb
+++ b/spec/requests/search_controller_spec.rb
@@ -112,7 +112,7 @@ RSpec.describe SearchController, type: :request, feature_category: :global_searc
control = ActiveRecord::QueryRecorder.new { send_search_request(params_for_one) }
expect(response.body).to include('search-results') # Confirm search results to prevent false positives
- expect { send_search_request(params_for_many) }.not_to exceed_query_limit(control.count)
+ expect { send_search_request(params_for_many) }.not_to exceed_query_limit(control)
expect(response.body).to include('search-results') # Confirm search results to prevent false positives
end
end
@@ -125,7 +125,7 @@ RSpec.describe SearchController, type: :request, feature_category: :global_searc
control = ActiveRecord::QueryRecorder.new { send_search_request(params_for_one) }
expect(response.body).to include('search-results') # Confirm search results to prevent false positives
- expect { send_search_request(params_for_many) }.not_to exceed_query_limit(control.count)
+ expect { send_search_request(params_for_many) }.not_to exceed_query_limit(control)
expect(response.body).to include('search-results') # Confirm search results to prevent false positives
end
end