Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsue445 <sue445@sue445.net>2017-08-08 14:31:55 +0300
committerRémy Coutable <remy@rymai.me>2017-08-08 14:31:55 +0300
commit7bc048616217b6cd1023c2972f882cf5d4a20309 (patch)
treed2a01dba74b23d3bb812b466bcf71ca77cd33bad /spec/requests/api/events_spec.rb
parent6f555990aa7002f45ec713ed0811f0c845245459 (diff)
Expose noteable_iid in Note
Diffstat (limited to 'spec/requests/api/events_spec.rb')
-rw-r--r--spec/requests/api/events_spec.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/spec/requests/api/events_spec.rb b/spec/requests/api/events_spec.rb
index 7a847442469..48db964d782 100644
--- a/spec/requests/api/events_spec.rb
+++ b/spec/requests/api/events_spec.rb
@@ -138,5 +138,40 @@ describe API::Events do
expect(response).to have_http_status(404)
end
end
+
+ context 'when exists some events' do
+ before do
+ create_event(note1)
+ create_event(note2)
+ create_event(merge_request1)
+ end
+
+ let(:note1) { create(:note_on_merge_request, project: private_project, author: user) }
+ let(:note2) { create(:note_on_issue, project: private_project, author: user) }
+ let(:merge_request1) { create(:merge_request, state: 'closed', author: user, assignee: user, source_project: private_project, title: 'Test') }
+ let(:merge_request2) { create(:merge_request, state: 'closed', author: user, assignee: user, source_project: private_project, title: 'Test') }
+
+ it 'avoids N+1 queries' do
+ control_count = ActiveRecord::QueryRecorder.new do
+ get api("/projects/#{private_project.id}/events", user)
+ end.count
+
+ create_event(merge_request2)
+
+ expect do
+ get api("/projects/#{private_project.id}/events", user)
+ end.not_to exceed_query_limit(control_count)
+
+ expect(response).to have_http_status(200)
+ expect(response).to include_pagination_headers
+ expect(json_response).to be_an Array
+ expect(json_response[0]).to include('target_type' => 'MergeRequest', 'target_id' => merge_request2.id)
+ expect(json_response[1]).to include('target_type' => 'MergeRequest', 'target_id' => merge_request1.id)
+ end
+
+ def create_event(target)
+ create(:event, project: private_project, author: user, target: target)
+ end
+ end
end
end