summaryrefslogtreecommitdiff
path: root/spec/controllers/projects
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2017-04-07 18:09:14 +0000
committerSean McGivern <sean@mcgivern.me.uk>2017-04-07 18:09:14 +0000
commit314370282c13db2f5466a0241988cf60abddb58e (patch)
tree87a8fa4b5638487f655b1772e6672c7319f0f17c /spec/controllers/projects
parentfd16c892556a345d43a5ffc1c7bbc28b63b0a49c (diff)
parent16a2eba52b8286533d881ec1a0454ca734d41c3f (diff)
downloadgitlab-ce-314370282c13db2f5466a0241988cf60abddb58e.tar.gz
Merge branch 'optimise-builds' into 'master'
Optimise Pipelines > Jobs index controller Closes #27389 See merge request !10546
Diffstat (limited to 'spec/controllers/projects')
-rw-r--r--spec/controllers/projects/builds_controller_spec.rb33
1 files changed, 33 insertions, 0 deletions
diff --git a/spec/controllers/projects/builds_controller_spec.rb b/spec/controllers/projects/builds_controller_spec.rb
index 683667129e5..13208d21918 100644
--- a/spec/controllers/projects/builds_controller_spec.rb
+++ b/spec/controllers/projects/builds_controller_spec.rb
@@ -10,6 +10,39 @@ describe Projects::BuildsController do
sign_in(user)
end
+ describe 'GET index' do
+ context 'number of queries' do
+ before do
+ Ci::Build::AVAILABLE_STATUSES.each do |status|
+ create_build(status, status)
+ end
+
+ RequestStore.begin!
+ end
+
+ after do
+ RequestStore.end!
+ RequestStore.clear!
+ end
+
+ def render
+ get :index, namespace_id: project.namespace,
+ project_id: project
+ end
+
+ it "verifies number of queries" do
+ recorded = ActiveRecord::QueryRecorder.new { render }
+ expect(recorded.count).to be_within(5).of(8)
+ end
+
+ def create_build(name, status)
+ pipeline = create(:ci_pipeline, project: project)
+ create(:ci_build, :tags, :triggered, :artifacts,
+ pipeline: pipeline, name: name, status: status)
+ end
+ end
+ end
+
describe 'GET status.json' do
let(:pipeline) { create(:ci_pipeline, project: project) }
let(:build) { create(:ci_build, pipeline: pipeline) }