Commit 164e6604 authored by Rémy Coutable's avatar Rémy Coutable

Fix a broken Events API spec

Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
parent 2aa460de
......@@ -140,33 +140,28 @@ describe API::Events do
end
context 'when exists some events' do
let(:merge_request1) { create(:merge_request, :closed, author: user, assignee: user, source_project: private_project, title: 'Test') }
let(:merge_request2) { create(:merge_request, :closed, author: user, assignee: user, source_project: private_project, title: 'Test') }
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)
get api("/projects/#{private_project.id}/events", user), target_type: :merge_request
end.count
create_event(merge_request2)
expect do
get api("/projects/#{private_project.id}/events", user)
get api("/projects/#{private_project.id}/events", user), target_type: :merge_request
end.not_to exceed_query_limit(control_count)
expect(response).to have_http_status(200)
expect(response).to have_gitlab_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)
expect(json_response.size).to eq(2)
expect(json_response.map { |r| r['target_id'] }).to match_array([merge_request1.id, merge_request2.id])
end
def create_event(target)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment