summaryrefslogtreecommitdiff
path: root/spec/mailers/notify_spec.rb
diff options
context:
space:
mode:
authorhhoopes <heidih@gmail.com>2016-08-17 16:27:01 -0600
committerSean McGivern <sean@gitlab.com>2016-11-25 15:23:49 +0000
commit38ed96e9b1a47dca5aa2590fa9b0ade908337435 (patch)
tree17eca90234faa03e95a963b8820659fd03d90560 /spec/mailers/notify_spec.rb
parent838c1aad68e8c7f81a0b8778f46f0ce4e7c5439d (diff)
downloadgitlab-ce-38ed96e9b1a47dca5aa2590fa9b0ade908337435.tar.gz
Add diff hunks to notification emails on MR
Added diff hunks to notification emails of messages on merge requests. This provides code context to the note. Uses existing template for formatting a diff for email (from repository push notifications).
Diffstat (limited to 'spec/mailers/notify_spec.rb')
-rw-r--r--spec/mailers/notify_spec.rb19
1 files changed, 17 insertions, 2 deletions
diff --git a/spec/mailers/notify_spec.rb b/spec/mailers/notify_spec.rb
index 932a5dc4862..b40a6b1cbac 100644
--- a/spec/mailers/notify_spec.rb
+++ b/spec/mailers/notify_spec.rb
@@ -580,8 +580,10 @@ describe Notify do
let(:note_author) { create(:user, name: 'author_name') }
let(:note) { create(:note, project: project, author: note_author) }
- before :each do
- allow(Note).to receive(:find).with(note.id).and_return(note)
+ before do |example|
+ unless example.metadata[:skip_before]
+ allow(Note).to receive(:find).with(note.id).and_return(note)
+ end
end
shared_examples 'a note email' do
@@ -663,6 +665,19 @@ describe Notify do
end
end
+ describe "on a merge request with diffs", :skip_before do
+ let(:merge_request) { create(:merge_request_with_diffs) }
+ let(:note_with_diff) {create(:diff_note_on_merge_request)}
+
+ before(:each) { allow(note_with_diff).to receive(:noteable).and_return(merge_request) }
+ subject { Notify.note_merge_request_email(recipient.id, note_with_diff.id) }
+
+ it 'includes diffs with character-level highlighting' do
+ expected_line_text = Discussion.new([note_with_diff]).truncated_diff_lines.first.text
+ is_expected.to have_body_text expected_line_text
+ end
+ end
+
describe 'on an issue' do
let(:issue) { create(:issue, project: project) }
let(:note_on_issue_path) { namespace_project_issue_path(project.namespace, project, issue, anchor: "note_#{note.id}") }