Commit 493d166d authored by Rémy Coutable's avatar Rémy Coutable

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
parents 7479f060 96ed5c51
...@@ -232,7 +232,7 @@ class Commit ...@@ -232,7 +232,7 @@ class Commit
end end
def reverts_commit?(commit) def reverts_commit?(commit)
description.include?(commit.revert_description) description? && description.include?(commit.revert_description)
end end
def merge_commit? def merge_commit?
......
...@@ -118,4 +118,38 @@ eos ...@@ -118,4 +118,38 @@ eos
it { expect(data[:modified]).to eq([".gitmodules"]) } it { expect(data[:modified]).to eq([".gitmodules"]) }
it { expect(data[:removed]).to eq([]) } it { expect(data[:removed]).to eq([]) }
end 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 end
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