summaryrefslogtreecommitdiff
path: root/spec/requests/api/events_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/requests/api/events_spec.rb')
-rw-r--r--spec/requests/api/events_spec.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/spec/requests/api/events_spec.rb b/spec/requests/api/events_spec.rb
index 962c845f36d..6696fb69273 100644
--- a/spec/requests/api/events_spec.rb
+++ b/spec/requests/api/events_spec.rb
@@ -160,6 +160,24 @@ describe API::Events do
expect(json_response.size).to eq(1)
end
+ it 'does not perform N+1 queries' do
+ endpoint = api("/projects/#{private_project.id}/events?action=closed", user)
+
+ issue = create(:issue, project: private_project)
+ note = create(:note, project: private_project, noteable: issue)
+ create(:event, project:private_project, target: note, action: Event::CLOSED)
+
+ control_count = ActiveRecord::QueryRecorder.new { get endpoint }.count
+
+ issues = create_list(:issue, 5, project: private_project)
+ issues.each do |issue|
+ note = create(:note, project: private_project, noteable: issue)
+ create(:event, project:private_project, target: note, action: Event::CLOSED)
+ end
+
+ expect { get endpoint }.not_to exceed_query_limit(control_count)
+ end
+
it 'returns 404 if project does not exist' do
get api("/projects/1234/events", user)