diff --git a/app/models/issue_observer.rb b/app/models/issue_observer.rb index 7215dc56332bdbbff73e1362b535f4e925a3ca65..a1f9fade9554729bc29cd51ffe14fc0b17e36c4c 100644 --- a/app/models/issue_observer.rb +++ b/app/models/issue_observer.rb @@ -2,7 +2,7 @@ class IssueObserver < ActiveRecord::Observer cattr_accessor :current_user def after_create(issue) - Notify.new_issue_email(issue.id) if issue.assignee != current_user + Notify.new_issue_email(issue.id).deliver if issue.assignee != current_user end def after_update(issue) @@ -15,7 +15,7 @@ class IssueObserver < ActiveRecord::Observer recipient_ids = [issue.assignee_id, issue.assignee_id_was].keep_if {|id| id != current_user.id } recipient_ids.each do |recipient_id| - Notify.reassigned_issue_email(recipient_id, issue.id, issue.assignee_id_was) + Notify.reassigned_issue_email(recipient_id, issue.id, issue.assignee_id_was).deliver end end end diff --git a/spec/models/issue_observer_spec.rb b/spec/models/issue_observer_spec.rb index b66803e6868db5e6c7025246754a0d7a7572a3f9..8270d3db90fc1c73e87a53b15157d2e11ae1c64e 100644 --- a/spec/models/issue_observer_spec.rb +++ b/spec/models/issue_observer_spec.rb @@ -20,7 +20,8 @@ describe IssueObserver do end it 'sends an email to the assignee' do - Notify.should_receive(:new_issue_email).with(issue.id) + Notify.should_receive(:new_issue_email).with(issue.id). + and_return(double(:deliver => true)) subject.after_create(issue) end @@ -107,9 +108,18 @@ describe IssueObserver do issue.stub(:assignee_id_was).and_return(previous_assignee.id) end + def it_sends_a_reassigned_email_to(recipient) + Notify.should_receive(:reassigned_issue_email).with(recipient, issue.id, previous_assignee.id). + and_return(double(:deliver => true)) + end + + def it_does_not_send_a_reassigned_email_to(recipient) + Notify.should_not_receive(:reassigned_issue_email).with(recipient, issue.id, previous_assignee.id) + end + it 'sends a reassigned email to the previous and current assignees' do - Notify.should_receive(:reassigned_issue_email).with(assignee.id, issue.id, previous_assignee.id) - Notify.should_receive(:reassigned_issue_email).with(previous_assignee.id, issue.id, previous_assignee.id) + it_sends_a_reassigned_email_to assignee.id + it_sends_a_reassigned_email_to previous_assignee.id subject.send_reassigned_email(issue) end @@ -117,13 +127,15 @@ describe IssueObserver do context 'does not send an email to the user who made the reassignment' do it 'if the user is the assignee' do subject.stub(:current_user).and_return(assignee) - Notify.should_not_receive(:reassigned_issue_email).with(assignee.id, issue.id, previous_assignee.id) + it_sends_a_reassigned_email_to previous_assignee.id + it_does_not_send_a_reassigned_email_to assignee.id subject.send_reassigned_email(issue) end it 'if the user is the previous assignee' do subject.stub(:current_user).and_return(previous_assignee) - Notify.should_not_receive(:reassigned_issue_email).with(previous_assignee.id, issue.id, previous_assignee.id) + it_sends_a_reassigned_email_to assignee.id + it_does_not_send_a_reassigned_email_to previous_assignee.id subject.send_reassigned_email(issue) end