diff options
author | Felipe Artur <felipefac@gmail.com> | 2017-06-02 19:57:40 -0300 |
---|---|---|
committer | Felipe Artur <felipefac@gmail.com> | 2017-06-06 21:58:13 -0300 |
commit | c698f10942ebdf44d0c2a6559277bc6a89d26c5b (patch) | |
tree | 3926a0552ad7deaf1464cf93f4d8bd1569bb9dec /spec/features/merge_requests/mini_pipeline_graph_spec.rb | |
parent | de3e1bb4ecccaf6d5dfa26140cbfc567dd998979 (diff) | |
download | gitlab-ce-c698f10942ebdf44d0c2a6559277bc6a89d26c5b.tar.gz |
Avoid repeated queries for pipeline builds on merge requestsissue_27166_2
Diffstat (limited to 'spec/features/merge_requests/mini_pipeline_graph_spec.rb')
-rw-r--r-- | spec/features/merge_requests/mini_pipeline_graph_spec.rb | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/spec/features/merge_requests/mini_pipeline_graph_spec.rb b/spec/features/merge_requests/mini_pipeline_graph_spec.rb index 3ceb91d951d..3a11ea3c8b2 100644 --- a/spec/features/merge_requests/mini_pipeline_graph_spec.rb +++ b/spec/features/merge_requests/mini_pipeline_graph_spec.rb @@ -12,13 +12,39 @@ feature 'Mini Pipeline Graph', :js, :feature do build.run login_as(user) - visit namespace_project_merge_request_path(project.namespace, project, merge_request) + visit_merge_request + end + + def visit_merge_request(format = :html) + visit namespace_project_merge_request_path(project.namespace, project, merge_request, format: format) end it 'should display a mini pipeline graph' do expect(page).to have_selector('.mr-widget-pipeline-graph') end + context 'as json' do + let(:artifacts_file1) { fixture_file_upload(Rails.root + 'spec/fixtures/banana_sample.gif', 'image/gif') } + let(:artifacts_file2) { fixture_file_upload(Rails.root + 'spec/fixtures/dk.png', 'image/png') } + + before do + create(:ci_build, pipeline: pipeline, artifacts_file: artifacts_file1) + create(:ci_build, pipeline: pipeline, when: 'manual') + end + + it 'avoids repeated database queries' do + before = ActiveRecord::QueryRecorder.new { visit_merge_request(:json) } + + create(:ci_build, pipeline: pipeline, artifacts_file: artifacts_file2) + create(:ci_build, pipeline: pipeline, when: 'manual') + + after = ActiveRecord::QueryRecorder.new { visit_merge_request(:json) } + + expect(before.count).to eq(after.count) + expect(before.cached_count).to eq(after.cached_count) + end + end + describe 'build list toggle' do let(:toggle) do find('.mini-pipeline-graph-dropdown-toggle') |