diff options
author | Stan Hu <stanhu@gmail.com> | 2018-06-03 03:31:41 -0700 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2018-06-04 16:39:33 -0700 |
commit | cbc20d2b7f8c73e2892c0c458619df2a9fe0c9ab (patch) | |
tree | 5f99239e63863d4631fe46c44363ee703c3b2a37 /spec/requests/api | |
parent | fe0ebf76c49e2512b211c5d43152275c536f7e3a (diff) | |
download | gitlab-ce-sh-add-uncached-query-limiter.tar.gz |
Remove N+1 query for author in issues APIsh-add-uncached-query-limiter
This was being masked by the statement cache because only one author was used
per issue in the test..
Also adds support for an Rspec matcher `exceed_all_query_limit`.
Diffstat (limited to 'spec/requests/api')
-rw-r--r-- | spec/requests/api/issues_spec.rb | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/spec/requests/api/issues_spec.rb b/spec/requests/api/issues_spec.rb index 4181f4ebbbe..a15d60aafe0 100644 --- a/spec/requests/api/issues_spec.rb +++ b/spec/requests/api/issues_spec.rb @@ -630,15 +630,17 @@ describe API::Issues do end it 'avoids N+1 queries' do - control_count = ActiveRecord::QueryRecorder.new do + get api("/projects/#{project.id}/issues", user) + + control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do get api("/projects/#{project.id}/issues", user) end.count - create(:issue, author: user, project: project) + create_list(:issue, 3, project: project) expect do get api("/projects/#{project.id}/issues", user) - end.not_to exceed_query_limit(control_count) + end.not_to exceed_all_query_limit(control_count) end it 'returns 404 when project does not exist' do |