From 11ed1cbbb7b777a4883af6ec5b79b958881fab67 Mon Sep 17 00:00:00 2001 From: Zeger-Jan van de Weg Date: Thu, 18 Feb 2016 10:26:10 +0100 Subject: [PATCH 1/2] Emoji reponses on diffs aren't award emoji --- CHANGELOG | 1 + app/models/note.rb | 4 ++++ app/views/projects/diffs/_text_file.html.haml | 4 ++-- spec/models/note_spec.rb | 9 +++++++-- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 4fe250efd4..c5eebccdb0 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -65,6 +65,7 @@ v 8.5.0 (unreleased) - Ability to see and sort on vote count from Issues and MR lists - Fix builds scheduler when first build in stage was allowed to fail - User project limit is reached notice is hidden if the projects limit is zero + - Emoji comment on diffs are not award emoji v 8.4.4 - Update omniauth-saml gem to 1.4.2 diff --git a/app/models/note.rb b/app/models/note.rb index 55255d22c2..d0f950d592 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -375,6 +375,10 @@ class Note < ActiveRecord::Base # def set_award! return unless awards_supported? && contains_emoji_only? + + # Responding with an emoji is not an award emoji if its on a diff comment + return if line_code + self.is_award = true self.note = award_emoji_name end diff --git a/app/views/projects/diffs/_text_file.html.haml b/app/views/projects/diffs/_text_file.html.haml index 5e835b10e1..d75e9ef2a4 100644 --- a/app/views/projects/diffs/_text_file.html.haml +++ b/app/views/projects/diffs/_text_file.html.haml @@ -35,8 +35,8 @@ = render "projects/notes/diff_notes_with_reply", notes: comments, line: raw_diff_lines[index].text - if last_line > 0 - = render "projects/diffs/match_line", {line: "", - line_old: last_line, line_new: last_line, bottom: true, new_file: diff_file.new_file} + = render "projects/diffs/match_line", { line: "", + line_old: last_line, line_new: last_line, bottom: true, new_file: diff_file.new_file } - if diff_file.diff.blank? && diff_file.mode_changed? .file-mode-changed diff --git a/spec/models/note_spec.rb b/spec/models/note_spec.rb index 9182b42661..7a293490c5 100644 --- a/spec/models/note_spec.rb +++ b/spec/models/note_spec.rb @@ -203,11 +203,16 @@ describe Note, models: true do end describe "set_award!" do - let(:issue) { create :issue } + let(:merge_request) { create :merge_request } it "converts aliases to actual name" do - note = create :note, note: ":+1:", noteable: issue + note = create(:note, note: ":+1:", noteable: merge_request) expect(note.reload.note).to eq("thumbsup") end + + it "is not an award emoji when comment is on a diff" do + note = create(:note, note: ":blowfish:", noteable: merge_request, line_code: "11d5d2e667e9da4f7f610f81d86c974b146b13bd_0_2") + expect(note.reload.note).to eq(":blowfish:") + end end end From aba1aa49a986230d697106117b5e9b0efa97467c Mon Sep 17 00:00:00 2001 From: Zeger-Jan van de Weg Date: Fri, 19 Feb 2016 10:10:55 +0100 Subject: [PATCH 2/2] Improve #set_award! on the Note model --- app/models/note.rb | 5 +---- spec/models/note_spec.rb | 5 ++++- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/models/note.rb b/app/models/note.rb index d0f950d592..b3809ad81e 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -376,9 +376,6 @@ class Note < ActiveRecord::Base def set_award! return unless awards_supported? && contains_emoji_only? - # Responding with an emoji is not an award emoji if its on a diff comment - return if line_code - self.is_award = true self.note = award_emoji_name end @@ -386,7 +383,7 @@ class Note < ActiveRecord::Base private def awards_supported? - noteable.kind_of?(Issue) || noteable.is_a?(MergeRequest) + (noteable.kind_of?(Issue) || noteable.is_a?(MergeRequest)) && !for_diff_line? end def contains_emoji_only? diff --git a/spec/models/note_spec.rb b/spec/models/note_spec.rb index 7a293490c5..e6da3724d3 100644 --- a/spec/models/note_spec.rb +++ b/spec/models/note_spec.rb @@ -212,7 +212,10 @@ describe Note, models: true do it "is not an award emoji when comment is on a diff" do note = create(:note, note: ":blowfish:", noteable: merge_request, line_code: "11d5d2e667e9da4f7f610f81d86c974b146b13bd_0_2") - expect(note.reload.note).to eq(":blowfish:") + note = note.reload + + expect(note.note).to eq(":blowfish:") + expect(note.is_award?).to be_falsy end end end