summaryrefslogtreecommitdiff
path: root/spec/requests/api
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2018-06-03 03:31:41 -0700
committerStan Hu <stanhu@gmail.com>2018-06-04 16:39:33 -0700
commitcbc20d2b7f8c73e2892c0c458619df2a9fe0c9ab (patch)
tree5f99239e63863d4631fe46c44363ee703c3b2a37 /spec/requests/api
parentfe0ebf76c49e2512b211c5d43152275c536f7e3a (diff)
downloadgitlab-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.rb8
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