| ... | @@ -84,27 +84,32 @@ describe MergeRequest do |
... | @@ -84,27 +84,32 @@ describe MergeRequest do |
|
|
|
|
|
|
|
describe '#default_squash_commit_message' do
|
|
describe '#default_squash_commit_message' do
|
|
|
let(:project) { subject.project }
|
|
let(:project) { subject.project }
|
|
|
let(:is_multiline) { -> (c) { c.description.present? } }
|
|
|
|
|
let(:multiline_commits) { subject.commits.select(&is_multiline) }
|
|
|
|
|
let(:singleline_commits) { subject.commits.reject(&is_multiline) }
|
|
|
|
|
|
|
|
|
|
it 'returns the oldest multiline commit message' do
|
|
def commit_collection(commit_hashes)
|
|
|
expect(subject.default_squash_commit_message).to eq(multiline_commits.last.message)
|
|
raw_commits = commit_hashes.map { |raw| Commit.from_hash(raw, project) }
|
|
|
|
|
|
|
|
CommitCollection.new(project, raw_commits)
|
|
|
end
|
|
end
|
|
|
|
|
|
|
|
it 'returns the merge request title if there are no multiline commits' do
|
|
it 'returns the oldest multiline commit message' do
|
|
|
expect(subject).to receive(:commits).and_return(
|
|
commits = commit_collection([
|
|
|
CommitCollection.new(project, singleline_commits)
|
|
{ message: 'Singleline', parent_ids: [] },
|
|
|
)
|
|
{ message: "Second multiline\nCommit message", parent_ids: [] },
|
|
|
|
{ message: "First multiline\nCommit message", parent_ids: [] }
|
|
|
|
])
|
|
|
|
|
|
|
|
expect(subject.default_squash_commit_message).to eq(subject.title)
|
|
expect(subject).to receive(:commits).and_return(commits)
|
|
|
|
|
|
|
|
expect(subject.default_squash_commit_message).to eq("First multiline\nCommit message")
|
|
|
end
|
|
end
|
|
|
|
|
|
|
|
it 'does not return commit messages from multiline merge commits' do
|
|
it 'returns the merge request title if there are no multiline commits' do
|
|
|
collection = CommitCollection.new(project, multiline_commits).enrich!
|
|
commits = commit_collection([
|
|
|
|
{ message: 'Singleline', parent_ids: [] }
|
|
|
|
])
|
|
|
|
|
|
|
|
expect(subject).to receive(:commits).and_return(commits)
|
|
|
|
|
|
|
|
expect(collection.commits).to all( receive(:merge_commit?).and_return(true) )
|
|
|
|
|
expect(subject).to receive(:commits).and_return(collection)
|
|
|
|
|
expect(subject.default_squash_commit_message).to eq(subject.title)
|
|
expect(subject.default_squash_commit_message).to eq(subject.title)
|
|
|
end
|
|
end
|
|
|
end
|
|
end
|
| ... | @@ -1040,7 +1045,7 @@ describe MergeRequest do |
... | @@ -1040,7 +1045,7 @@ describe MergeRequest do |
|
|
|
|
|
|
|
describe '#commit_authors' do
|
|
describe '#commit_authors' do
|
|
|
it 'returns all the authors of every commit in the merge request' do
|
|
it 'returns all the authors of every commit in the merge request' do
|
|
|
users = subject.commits.without_merge_commits.map(&:author_email).uniq.map do |email|
|
|
users = subject.commits.map(&:author_email).uniq.map do |email|
|
|
|
create(:user, email: email)
|
|
create(:user, email: email)
|
|
|
end
|
|
end
|
|
|
|
|
|
| ... | @@ -1054,7 +1059,7 @@ describe MergeRequest do |
... | @@ -1054,7 +1059,7 @@ describe MergeRequest do |
|
|
|
|
|
|
|
describe '#authors' do
|
|
describe '#authors' do
|
|
|
it 'returns a list with all the commit authors in the merge request and author' do
|
|
it 'returns a list with all the commit authors in the merge request and author' do
|
|
|
users = subject.commits.without_merge_commits.map(&:author_email).uniq.map do |email|
|
|
users = subject.commits.map(&:author_email).uniq.map do |email|
|
|
|
create(:user, email: email)
|
|
create(:user, email: email)
|
|
|
end
|
|
end
|
|
|
|
|
|
| ... | |
... | |
| ... | | ... | |