diff options
author | Yorick Peterse <yorickpeterse@gmail.com> | 2017-08-21 18:27:06 +0300 |
---|---|---|
committer | Yorick Peterse <yorickpeterse@gmail.com> | 2017-08-22 21:15:45 +0300 |
commit | b4aaced71a65faffd49ffa2c705fb574ed532701 (patch) | |
tree | 149d1f65c9cab089046d8bf7af4bea57efa235f3 /spec/models/event_spec.rb | |
parent | e6f20e52f6f77f77942c047dca91d3e325cce8b2 (diff) |
Fix display of push events for removed refs
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) |