diff options
author | Stan Hu <stanhu@gmail.com> | 2018-06-03 13:31:41 +0300 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2018-06-05 02:44:03 +0300 |
commit | c26cbfcdfb6a0c83253f42be016692abc3548e8c (patch) | |
tree | a37bfb6b04bb47d2d5494e3522996afcbdc5716b /spec/requests | |
parent | bb2a847c8381dba03ac261c64e0022bf4823f912 (diff) |
Remove N+1 query for author in issues API
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')
-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 |