summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatija Čupić <matteeyah@gmail.com>2018-01-15 17:58:56 +0100
committerMatija Čupić <matteeyah@gmail.com>2018-01-15 17:58:56 +0100
commita4d7f155bf2adeb6e9b1850905d414ddb48c9276 (patch)
treefceb02555a95a3d8da47f9e5f423b290528a76ba
parent87cc03736ccaa91db51e171883ef2e2a05a74360 (diff)
downloadgitlab-ce-a4d7f155bf2adeb6e9b1850905d414ddb48c9276.tar.gz
Extend N+1 Builds and Jobs API specs
-rw-r--r--spec/requests/api/jobs_spec.rb13
-rw-r--r--spec/requests/api/v3/builds_spec.rb13
2 files changed, 24 insertions, 2 deletions
diff --git a/spec/requests/api/jobs_spec.rb b/spec/requests/api/jobs_spec.rb
index 5def049a669..5c955b8b856 100644
--- a/spec/requests/api/jobs_spec.rb
+++ b/spec/requests/api/jobs_spec.rb
@@ -54,8 +54,19 @@ describe API::Jobs do
end
it 'avoids N+1 queries', skip_before_request: true do
+ first_build = create(:ci_build, :artifacts, pipeline: pipeline)
+ first_build.runner = create(:ci_runner)
+ first_build.user = create(:user)
+ first_build.save
+
control_count = ActiveRecord::QueryRecorder.new { go }.count
- create_list(:ci_build, 5, pipeline: pipeline)
+
+ second_pipeline = create(:ci_empty_pipeline, project: project, sha: project.commit.id, ref: project.default_branch)
+ second_build = create(:ci_build, :artifacts, pipeline: second_pipeline)
+ second_build.runner = create(:ci_runner)
+ second_build.user = create(:user)
+ second_build.save
+
expect { go }.not_to exceed_query_limit(control_count)
end
diff --git a/spec/requests/api/v3/builds_spec.rb b/spec/requests/api/v3/builds_spec.rb
index 304d5c3a42f..cdbc5692e19 100644
--- a/spec/requests/api/v3/builds_spec.rb
+++ b/spec/requests/api/v3/builds_spec.rb
@@ -43,8 +43,19 @@ describe API::V3::Builds do
end
it 'avoids N+1 queries', skip_before_request: true do
+ first_build = create(:ci_build, :artifacts, pipeline: pipeline)
+ first_build.runner = create(:ci_runner)
+ first_build.user = create(:user)
+ first_build.save
+
control_count = ActiveRecord::QueryRecorder.new { go }.count
- create_list(:ci_build, 5, pipeline: pipeline)
+
+ second_pipeline = create(:ci_empty_pipeline, project: project, sha: project.commit.id, ref: project.default_branch)
+ second_build = create(:ci_build, :artifacts, pipeline: second_pipeline)
+ second_build.runner = create(:ci_runner)
+ second_build.user = create(:user)
+ second_build.save
+
expect { go }.not_to exceed_query_limit(control_count)
end