Deliver issue mails.

It helps to actually deliver messages.
This commit is contained in:
Robb Kidd 2012-06-15 16:23:28 -04:00
parent dfb5da9da3
commit 97ca4f5dda
2 changed files with 19 additions and 7 deletions

View file

@ -2,7 +2,7 @@ class IssueObserver < ActiveRecord::Observer
cattr_accessor :current_user cattr_accessor :current_user
def after_create(issue) 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 end
def after_update(issue) 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 = [issue.assignee_id, issue.assignee_id_was].keep_if {|id| id != current_user.id }
recipient_ids.each do |recipient_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 end
end end

View file

@ -20,7 +20,8 @@ describe IssueObserver do
end end
it 'sends an email to the assignee' do 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) subject.after_create(issue)
end end
@ -107,9 +108,18 @@ describe IssueObserver do
issue.stub(:assignee_id_was).and_return(previous_assignee.id) issue.stub(:assignee_id_was).and_return(previous_assignee.id)
end 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 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) it_sends_a_reassigned_email_to assignee.id
Notify.should_receive(:reassigned_issue_email).with(previous_assignee.id, issue.id, previous_assignee.id) it_sends_a_reassigned_email_to previous_assignee.id
subject.send_reassigned_email(issue) subject.send_reassigned_email(issue)
end end
@ -117,13 +127,15 @@ describe IssueObserver do
context 'does not send an email to the user who made the reassignment' do context 'does not send an email to the user who made the reassignment' do
it 'if the user is the assignee' do it 'if the user is the assignee' do
subject.stub(:current_user).and_return(assignee) 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) subject.send_reassigned_email(issue)
end end
it 'if the user is the previous assignee' do it 'if the user is the previous assignee' do
subject.stub(:current_user).and_return(previous_assignee) 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) subject.send_reassigned_email(issue)
end end