diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2017-04-06 14:21:28 +0300 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2017-04-06 14:21:28 +0300 |
commit | d062af91ca10bb0c48136ad9b9204b02d41fdf8c (patch) | |
tree | c99d7a0af28992387c0f3efd610b9631a8de0a40 | |
parent | a1db7c5b9fec34c9d4f5b262eeb836387b926e80 (diff) | |
parent | d5102cf75f5d4a1b4bcd15bca1732550ebdae125 (diff) |
Merge branch '30291-reopen-mr' into 'master'
Search for opened MRs - include reopened MRs
Closes #30291
See merge request !10407
-rw-r--r-- | app/services/merge_requests/base_service.rb | 2 | ||||
-rw-r--r-- | changelogs/unreleased/30291-reopen-mr.yml | 4 | ||||
-rw-r--r-- | spec/services/merge_requests/refresh_service_spec.rb | 27 |
3 files changed, 32 insertions, 1 deletions
diff --git a/app/services/merge_requests/base_service.rb b/app/services/merge_requests/base_service.rb index 5a53b973059..582d5c47b66 100644 --- a/app/services/merge_requests/base_service.rb +++ b/app/services/merge_requests/base_service.rb @@ -39,7 +39,7 @@ module MergeRequests private # Returns all origin and fork merge requests from `@project` satisfying passed arguments. - def merge_requests_for(source_branch, mr_states: [:opened]) + def merge_requests_for(source_branch, mr_states: [:opened, :reopened]) MergeRequest .with_state(mr_states) .where(source_branch: source_branch, source_project_id: @project.id) diff --git a/changelogs/unreleased/30291-reopen-mr.yml b/changelogs/unreleased/30291-reopen-mr.yml new file mode 100644 index 00000000000..4ae3e90eeba --- /dev/null +++ b/changelogs/unreleased/30291-reopen-mr.yml @@ -0,0 +1,4 @@ +--- +title: Include reopened MRs when searching for opened ones +merge_request: 10407 +author: diff --git a/spec/services/merge_requests/refresh_service_spec.rb b/spec/services/merge_requests/refresh_service_spec.rb index c22d145ca5d..03215a4624a 100644 --- a/spec/services/merge_requests/refresh_service_spec.rb +++ b/spec/services/merge_requests/refresh_service_spec.rb @@ -49,6 +49,7 @@ describe MergeRequests::RefreshService, services: true do context 'push to origin repo source branch' do let(:refresh_service) { service.new(@project, @user) } + before do allow(refresh_service).to receive(:execute_hooks) refresh_service.execute(@oldrev, @newrev, 'refs/heads/master') @@ -70,6 +71,32 @@ describe MergeRequests::RefreshService, services: true do end end + context 'push to origin repo source branch when an MR was reopened' do + let(:refresh_service) { service.new(@project, @user) } + + before do + @merge_request.update(state: :reopened) + + allow(refresh_service).to receive(:execute_hooks) + refresh_service.execute(@oldrev, @newrev, 'refs/heads/master') + reload_mrs + end + + it 'executes hooks with update action' do + expect(refresh_service).to have_received(:execute_hooks). + with(@merge_request, 'update', @oldrev) + + expect(@merge_request.notes).not_to be_empty + expect(@merge_request).to be_open + expect(@merge_request.merge_when_pipeline_succeeds).to be_falsey + expect(@merge_request.diff_head_sha).to eq(@newrev) + expect(@fork_merge_request).to be_open + expect(@fork_merge_request.notes).to be_empty + expect(@build_failed_todo).to be_done + expect(@fork_build_failed_todo).to be_done + end + end + context 'push to origin repo target branch' do before do service.new(@project, @user).execute(@oldrev, @newrev, 'refs/heads/feature') |