diff options
author | Yorick Peterse <yorickpeterse@gmail.com> | 2017-08-21 17:27:06 +0200 |
---|---|---|
committer | Yorick Peterse <yorickpeterse@gmail.com> | 2017-08-22 20:15:45 +0200 |
commit | b4aaced71a65faffd49ffa2c705fb574ed532701 (patch) | |
tree | 149d1f65c9cab089046d8bf7af4bea57efa235f3 /spec/models/event_spec.rb | |
parent | e6f20e52f6f77f77942c047dca91d3e325cce8b2 (diff) | |
download | gitlab-ce-b4aaced71a65faffd49ffa2c705fb574ed532701.tar.gz |
Fix display of push events for removed refsfix-push-events-branch-removals
This changes the style of push events that remove tags or branches so
they don't display the commit details. This prevents displaying commit
details such as:
000000 . --broken encoding
Instead we now simply display the header such as:
Administrator deleted branch example-branch
This is displayed in the same style as events for newly created
branches/tags.
This commit also ensures that if no commit message is present we simply
don't display anything, instead of "--broken encoding".
Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/36685
Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/36722
Diffstat (limited to 'spec/models/event_spec.rb')
-rw-r--r-- | spec/models/event_spec.rb | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/spec/models/event_spec.rb b/spec/models/event_spec.rb index ff3224dd298..f55c161c821 100644 --- a/spec/models/event_spec.rb +++ b/spec/models/event_spec.rb @@ -304,6 +304,50 @@ describe Event do end end + describe '#body?' do + let(:push_event) do + event = build(:push_event) + + allow(event).to receive(:push?).and_return(true) + + event + end + + it 'returns true for a push event with commits' do + allow(push_event).to receive(:push_with_commits?).and_return(true) + + expect(push_event).to be_body + end + + it 'returns false for a push event without a valid commit range' do + allow(push_event).to receive(:push_with_commits?).and_return(false) + + expect(push_event).not_to be_body + end + + it 'returns true for a Note event' do + event = build(:event) + + allow(event).to receive(:note?).and_return(true) + + expect(event).to be_body + end + + it 'returns true if the target responds to #title' do + event = build(:event) + + allow(event).to receive(:target).and_return(double(:target, title: 'foo')) + + expect(event).to be_body + end + + it 'returns false for a regular event without a target' do + event = build(:event) + + expect(event).not_to be_body + end + end + def create_push_event(project, user) event = create(:push_event, project: project, author: user) |