Commit 97ca4f5ddadd9f6880e238e85af00a82dcd8807f

Authored by Robb Kidd
1 parent dfb5da9d

Deliver issue mails.

It helps to actually deliver messages.
app/models/issue_observer.rb
... ... @@ -2,7 +2,7 @@ class IssueObserver < ActiveRecord::Observer
2 2 cattr_accessor :current_user
3 3  
4 4 def after_create(issue)
5   - Notify.new_issue_email(issue.id) if issue.assignee != current_user
  5 + Notify.new_issue_email(issue.id).deliver if issue.assignee != current_user
6 6 end
7 7  
8 8 def after_update(issue)
... ... @@ -15,7 +15,7 @@ class IssueObserver < ActiveRecord::Observer
15 15 recipient_ids = [issue.assignee_id, issue.assignee_id_was].keep_if {|id| id != current_user.id }
16 16  
17 17 recipient_ids.each do |recipient_id|
18   - Notify.reassigned_issue_email(recipient_id, issue.id, issue.assignee_id_was)
  18 + Notify.reassigned_issue_email(recipient_id, issue.id, issue.assignee_id_was).deliver
19 19 end
20 20 end
21 21 end
... ...
spec/models/issue_observer_spec.rb
... ... @@ -20,7 +20,8 @@ describe IssueObserver do
20 20 end
21 21  
22 22 it 'sends an email to the assignee' do
23   - Notify.should_receive(:new_issue_email).with(issue.id)
  23 + Notify.should_receive(:new_issue_email).with(issue.id).
  24 + and_return(double(:deliver => true))
24 25  
25 26 subject.after_create(issue)
26 27 end
... ... @@ -107,9 +108,18 @@ describe IssueObserver do
107 108 issue.stub(:assignee_id_was).and_return(previous_assignee.id)
108 109 end
109 110  
  111 + def it_sends_a_reassigned_email_to(recipient)
  112 + Notify.should_receive(:reassigned_issue_email).with(recipient, issue.id, previous_assignee.id).
  113 + and_return(double(:deliver => true))
  114 + end
  115 +
  116 + def it_does_not_send_a_reassigned_email_to(recipient)
  117 + Notify.should_not_receive(:reassigned_issue_email).with(recipient, issue.id, previous_assignee.id)
  118 + end
  119 +
110 120 it 'sends a reassigned email to the previous and current assignees' do
111   - Notify.should_receive(:reassigned_issue_email).with(assignee.id, issue.id, previous_assignee.id)
112   - Notify.should_receive(:reassigned_issue_email).with(previous_assignee.id, issue.id, previous_assignee.id)
  121 + it_sends_a_reassigned_email_to assignee.id
  122 + it_sends_a_reassigned_email_to previous_assignee.id
113 123  
114 124 subject.send_reassigned_email(issue)
115 125 end
... ... @@ -117,13 +127,15 @@ describe IssueObserver do
117 127 context 'does not send an email to the user who made the reassignment' do
118 128 it 'if the user is the assignee' do
119 129 subject.stub(:current_user).and_return(assignee)
120   - Notify.should_not_receive(:reassigned_issue_email).with(assignee.id, issue.id, previous_assignee.id)
  130 + it_sends_a_reassigned_email_to previous_assignee.id
  131 + it_does_not_send_a_reassigned_email_to assignee.id
121 132  
122 133 subject.send_reassigned_email(issue)
123 134 end
124 135 it 'if the user is the previous assignee' do
125 136 subject.stub(:current_user).and_return(previous_assignee)
126   - Notify.should_not_receive(:reassigned_issue_email).with(previous_assignee.id, issue.id, previous_assignee.id)
  137 + it_sends_a_reassigned_email_to assignee.id
  138 + it_does_not_send_a_reassigned_email_to previous_assignee.id
127 139  
128 140 subject.send_reassigned_email(issue)
129 141 end
... ...