diff options
author | micael.bergeron <micael.bergeron@solutionstlm.com> | 2017-09-12 15:49:01 -0400 |
---|---|---|
committer | micael.bergeron <micael.bergeron@solutionstlm.com> | 2017-09-12 15:49:01 -0400 |
commit | b376e5c80e3dc6f30dfcc06f6a63209381414f89 (patch) | |
tree | 5c329738b841e887ff9489d9021313adf983e65e /spec | |
parent | 53e632cbca5c9a304079721c26c140628c09e81c (diff) | |
download | gitlab-ce-34510-board-issues-sql-speedup.tar.gz |
fix another N+1 query for label priorities34510-board-issues-sql-speedup
added a QueryRecorder for IssuesController#index.json
Diffstat (limited to 'spec')
-rw-r--r-- | spec/controllers/boards/issues_controller_spec.rb | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/spec/controllers/boards/issues_controller_spec.rb b/spec/controllers/boards/issues_controller_spec.rb index dfa06c78d46..5163099cd98 100644 --- a/spec/controllers/boards/issues_controller_spec.rb +++ b/spec/controllers/boards/issues_controller_spec.rb @@ -45,6 +45,17 @@ describe Boards::IssuesController do expect(parsed_response.length).to eq 2 expect(development.issues.map(&:relative_position)).not_to include(nil) end + + it 'avoids N+1 database queries' do + create(:labeled_issue, project: project, labels: [development]) + control_count = ActiveRecord::QueryRecorder.new { list_issues(user: user, board: board, list: list2) }.count + + # 25 issues is bigger than the page size + # the relative position will ignore the `#make_sure_position_set` queries + create_list(:labeled_issue, 25, project: project, labels: [development], assignees: [johndoe], relative_position: 1) + + expect { list_issues(user: user, board: board, list: list2) }.not_to exceed_query_limit(control_count) + end end context 'with invalid list id' do |