diff options
author | sue445 <sue445@sue445.net> | 2017-08-08 11:31:55 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-08-08 11:31:55 +0000 |
commit | 7bc048616217b6cd1023c2972f882cf5d4a20309 (patch) | |
tree | d2a01dba74b23d3bb812b466bcf71ca77cd33bad /spec/requests | |
parent | 6f555990aa7002f45ec713ed0811f0c845245459 (diff) | |
download | gitlab-ce-7bc048616217b6cd1023c2972f882cf5d4a20309.tar.gz |
Expose noteable_iid in Note
Diffstat (limited to 'spec/requests')
-rw-r--r-- | spec/requests/api/events_spec.rb | 35 |
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 |