Merge branch 'sh-speed-up-refresh-service' into 'master'

Speed up MergeRequest::RefreshService spec by combining examples

See merge request !9801
This commit is contained in:
Rémy Coutable 2017-03-08 13:18:26 +00:00
commit 1602902987

View file

@ -58,16 +58,16 @@ describe MergeRequests::RefreshService, services: true do
it 'executes hooks with update action' do it 'executes hooks with update action' do
expect(refresh_service).to have_received(:execute_hooks). expect(refresh_service).to have_received(:execute_hooks).
with(@merge_request, 'update', @oldrev) with(@merge_request, 'update', @oldrev)
end
it { expect(@merge_request.notes).not_to be_empty } expect(@merge_request.notes).not_to be_empty
it { expect(@merge_request).to be_open } expect(@merge_request).to be_open
it { expect(@merge_request.merge_when_pipeline_succeeds).to be_falsey } expect(@merge_request.merge_when_pipeline_succeeds).to be_falsey
it { expect(@merge_request.diff_head_sha).to eq(@newrev) } expect(@merge_request.diff_head_sha).to eq(@newrev)
it { expect(@fork_merge_request).to be_open } expect(@fork_merge_request).to be_open
it { expect(@fork_merge_request.notes).to be_empty } expect(@fork_merge_request.notes).to be_empty
it { expect(@build_failed_todo).to be_done } expect(@build_failed_todo).to be_done
it { expect(@fork_build_failed_todo).to be_done } expect(@fork_build_failed_todo).to be_done
end
end end
context 'push to origin repo target branch' do context 'push to origin repo target branch' do
@ -76,12 +76,14 @@ describe MergeRequests::RefreshService, services: true do
reload_mrs reload_mrs
end end
it { expect(@merge_request.notes.last.note).to include('merged') } it 'updates the merge state' do
it { expect(@merge_request).to be_merged } expect(@merge_request.notes.last.note).to include('merged')
it { expect(@fork_merge_request).to be_merged } expect(@merge_request).to be_merged
it { expect(@fork_merge_request.notes.last.note).to include('merged') } expect(@fork_merge_request).to be_merged
it { expect(@build_failed_todo).to be_done } expect(@fork_merge_request.notes.last.note).to include('merged')
it { expect(@fork_build_failed_todo).to be_done } expect(@build_failed_todo).to be_done
expect(@fork_build_failed_todo).to be_done
end
end end
context 'manual merge of source branch' do context 'manual merge of source branch' do
@ -95,13 +97,15 @@ describe MergeRequests::RefreshService, services: true do
reload_mrs reload_mrs
end end
it { expect(@merge_request.notes.last.note).to include('merged') } it 'updates the merge state' do
it { expect(@merge_request).to be_merged } expect(@merge_request.notes.last.note).to include('merged')
it { expect(@merge_request.diffs.size).to be > 0 } expect(@merge_request).to be_merged
it { expect(@fork_merge_request).to be_merged } expect(@merge_request.diffs.size).to be > 0
it { expect(@fork_merge_request.notes.last.note).to include('merged') } expect(@fork_merge_request).to be_merged
it { expect(@build_failed_todo).to be_done } expect(@fork_merge_request.notes.last.note).to include('merged')
it { expect(@fork_build_failed_todo).to be_done } expect(@build_failed_todo).to be_done
expect(@fork_build_failed_todo).to be_done
end
end end
context 'push to fork repo source branch' do context 'push to fork repo source branch' do
@ -117,14 +121,14 @@ describe MergeRequests::RefreshService, services: true do
it 'executes hooks with update action' do it 'executes hooks with update action' do
expect(refresh_service).to have_received(:execute_hooks). expect(refresh_service).to have_received(:execute_hooks).
with(@fork_merge_request, 'update', @oldrev) with(@fork_merge_request, 'update', @oldrev)
end
it { expect(@merge_request.notes).to be_empty } expect(@merge_request.notes).to be_empty
it { expect(@merge_request).to be_open } expect(@merge_request).to be_open
it { expect(@fork_merge_request.notes.last.note).to include('added 28 commits') } expect(@fork_merge_request.notes.last.note).to include('added 28 commits')
it { expect(@fork_merge_request).to be_open } expect(@fork_merge_request).to be_open
it { expect(@build_failed_todo).to be_pending } expect(@build_failed_todo).to be_pending
it { expect(@fork_build_failed_todo).to be_pending } expect(@fork_build_failed_todo).to be_pending
end
end end
context 'closed fork merge request' do context 'closed fork merge request' do
@ -139,12 +143,14 @@ describe MergeRequests::RefreshService, services: true do
expect(refresh_service).not_to have_received(:execute_hooks) expect(refresh_service).not_to have_received(:execute_hooks)
end end
it { expect(@merge_request.notes).to be_empty } it 'updates merge request to closed state' do
it { expect(@merge_request).to be_open } expect(@merge_request.notes).to be_empty
it { expect(@fork_merge_request.notes).to be_empty } expect(@merge_request).to be_open
it { expect(@fork_merge_request).to be_closed } expect(@fork_merge_request.notes).to be_empty
it { expect(@build_failed_todo).to be_pending } expect(@fork_merge_request).to be_closed
it { expect(@fork_build_failed_todo).to be_pending } expect(@build_failed_todo).to be_pending
expect(@fork_build_failed_todo).to be_pending
end
end end
end end
@ -155,12 +161,14 @@ describe MergeRequests::RefreshService, services: true do
reload_mrs reload_mrs
end end
it { expect(@merge_request.notes).to be_empty } it 'updates the merge request state' do
it { expect(@merge_request).to be_open } expect(@merge_request.notes).to be_empty
it { expect(@fork_merge_request.notes).to be_empty } expect(@merge_request).to be_open
it { expect(@fork_merge_request).to be_open } expect(@fork_merge_request.notes).to be_empty
it { expect(@build_failed_todo).to be_pending } expect(@fork_merge_request).to be_open
it { expect(@fork_build_failed_todo).to be_pending } expect(@build_failed_todo).to be_pending
expect(@fork_build_failed_todo).to be_pending
end
end end
describe 'merge request diff' do describe 'merge request diff' do
@ -179,12 +187,14 @@ describe MergeRequests::RefreshService, services: true do
reload_mrs reload_mrs
end end
it { expect(@merge_request.notes.last.note).to include('merged') } it 'updates the merge request state' do
it { expect(@merge_request).to be_merged } expect(@merge_request.notes.last.note).to include('merged')
it { expect(@fork_merge_request).to be_open } expect(@merge_request).to be_merged
it { expect(@fork_merge_request.notes).to be_empty } expect(@fork_merge_request).to be_open
it { expect(@build_failed_todo).to be_done } expect(@fork_merge_request.notes).to be_empty
it { expect(@fork_build_failed_todo).to be_done } expect(@build_failed_todo).to be_done
expect(@fork_build_failed_todo).to be_done
end
end end
context 'push new branch that exists in a merge request' do context 'push new branch that exists in a merge request' do