From a4d7f155bf2adeb6e9b1850905d414ddb48c9276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matija=20=C4=8Cupi=C4=87?= Date: Mon, 15 Jan 2018 17:58:56 +0100 Subject: Extend N+1 Builds and Jobs API specs --- spec/requests/api/jobs_spec.rb | 13 ++++++++++++- spec/requests/api/v3/builds_spec.rb | 13 ++++++++++++- 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 -- cgit v1.2.1