Commit 888c1a3f authored by Stan Hu's avatar Stan Hu

Add spec for refresh service adding notes to restored branches

parent bf290a52
...@@ -90,9 +90,8 @@ module MergeRequests ...@@ -90,9 +90,8 @@ module MergeRequests
# Since any number of commits could have been made to the restored branch, # Since any number of commits could have been made to the restored branch,
# find the common root to see what has been added. # find the common root to see what has been added.
common_ref = @project.repository.merge_base(last_commit.id, @newrev) common_ref = @project.repository.merge_base(last_commit.id, @newrev)
# If the last_commit no longer exists in this new branch, # If the a commit no longer exists in this repo, gitlab_git throws
# gitlab_git throws a Rugged::OdbError # a Rugged::OdbError. This is fixed in https://gitlab.com/gitlab-org/gitlab_git/merge_requests/52
# This is fixed in https://gitlab.com/gitlab-org/gitlab_git/merge_requests/52
@commits = @project.repository.commits_between(common_ref, @newrev) if common_ref @commits = @project.repository.commits_between(common_ref, @newrev) if common_ref
rescue rescue
end end
......
...@@ -108,21 +108,23 @@ describe MergeRequests::RefreshService do ...@@ -108,21 +108,23 @@ describe MergeRequests::RefreshService do
context 'push new branch that exists in a merge request' do context 'push new branch that exists in a merge request' do
let(:refresh_service) { service.new(@fork_project, @user) } let(:refresh_service) { service.new(@fork_project, @user) }
before do
allow(refresh_service).to receive(:execute_hooks) it 'refreshes the merge request' do
expect(refresh_service).to receive(:execute_hooks).
with(@fork_merge_request, 'update')
allow_any_instance_of(Repository).to receive(:merge_base).and_return(@oldrev)
refresh_service.execute(Gitlab::Git::BLANK_SHA, @newrev, 'refs/heads/master') refresh_service.execute(Gitlab::Git::BLANK_SHA, @newrev, 'refs/heads/master')
reload_mrs reload_mrs
end
it 'should execute hooks with update action' do expect(@merge_request.notes).to be_empty
expect(refresh_service).to have_received(:execute_hooks). expect(@merge_request).to be_open
with(@fork_merge_request, 'update')
end
it { expect(@merge_request.notes).to be_empty } notes = @fork_merge_request.notes.reorder(:created_at).map(&:note)
it { expect(@merge_request).to be_open } expect(notes[0]).to include('Source branch `master` restored')
it { expect(@fork_merge_request.notes.last.note).to include('Source branch `master` restored') } expect(notes[1]).to include('Added 4 commits')
it { expect(@fork_merge_request).to be_open } expect(@fork_merge_request).to be_open
end
end end
def reload_mrs def reload_mrs
......
...@@ -229,7 +229,7 @@ describe SystemNoteService do ...@@ -229,7 +229,7 @@ describe SystemNoteService do
end end
describe '.change_branch' do describe '.change_branch' do
subject { described_class.change_branch(noteable, project, author, :target, old_branch, new_branch) } subject { described_class.change_branch(noteable, project, author, 'target', old_branch, new_branch) }
let(:old_branch) { 'old_branch'} let(:old_branch) { 'old_branch'}
let(:new_branch) { 'new_branch'} let(:new_branch) { 'new_branch'}
...@@ -243,7 +243,7 @@ describe SystemNoteService do ...@@ -243,7 +243,7 @@ describe SystemNoteService do
end end
describe '.change_branch_presence' do describe '.change_branch_presence' do
subject { described_class.change_branch_presence(noteable, project, author, 'source', 'feature', :delete) } subject { described_class.change_branch_presence(noteable, project, author, :source, 'feature', :delete) }
it_behaves_like 'a system note' it_behaves_like 'a system note'
......
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