Merge branch 'fix/13631-error-with-merged-mr' into 'master'

Ensure we don't check a commit's description for revert message if it has no description

Fixes #13631.

/cc @razer6 @grzesiek @yorickpeterse @rdavila 

See merge request !2917
This commit is contained in:
Rémy Coutable 2016-02-22 18:13:46 +00:00
commit 493d166d66
2 changed files with 35 additions and 1 deletions

View file

@ -232,7 +232,7 @@ class Commit
end
def reverts_commit?(commit)
description.include?(commit.revert_description)
description? && description.include?(commit.revert_description)
end
def merge_commit?

View file

@ -118,4 +118,38 @@ eos
it { expect(data[:modified]).to eq([".gitmodules"]) }
it { expect(data[:removed]).to eq([]) }
end
describe '#reverts_commit?' do
let(:another_commit) { double(:commit, revert_description: "This reverts commit #{commit.sha}") }
it { expect(commit.reverts_commit?(another_commit)).to be_falsy }
context 'commit has no description' do
before { allow(commit).to receive(:description?).and_return(false) }
it { expect(commit.reverts_commit?(another_commit)).to be_falsy }
end
context "another_commit's description does not revert commit" do
before { allow(commit).to receive(:description).and_return("Foo Bar") }
it { expect(commit.reverts_commit?(another_commit)).to be_falsy }
end
context "another_commit's description reverts commit" do
before { allow(commit).to receive(:description).and_return("Foo #{another_commit.revert_description} Bar") }
it { expect(commit.reverts_commit?(another_commit)).to be_truthy }
end
context "another_commit's description reverts merged merge request" do
before do
revert_description = "This reverts merge request !foo123"
allow(another_commit).to receive(:revert_description).and_return(revert_description)
allow(commit).to receive(:description).and_return("Foo #{another_commit.revert_description} Bar")
end
it { expect(commit.reverts_commit?(another_commit)).to be_truthy }
end
end
end