Commit 97ca4f5d authored by Robb Kidd's avatar Robb Kidd

Deliver issue mails.

It helps to actually deliver messages.
parent dfb5da9d
...@@ -2,7 +2,7 @@ class IssueObserver < ActiveRecord::Observer ...@@ -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 ...@@ -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
...@@ -20,7 +20,8 @@ describe IssueObserver do ...@@ -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 ...@@ -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 ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment