From 06fd651a4f22f9ae7ce0f78be861e67c2c21f066 Mon Sep 17 00:00:00 2001 From: anark Date: Wed, 19 Oct 2011 14:39:59 -0700 Subject: [PATCH] Reset notice count when an issue is resolved and send emails when appropriate --- app/models/problem.rb | 2 +- spec/models/notice_spec.rb | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/models/problem.rb b/app/models/problem.rb index 5e0e676..1bace69 100644 --- a/app/models/problem.rb +++ b/app/models/problem.rb @@ -47,7 +47,7 @@ class Problem end def resolve! - self.update_attributes!(:resolved => true) + self.update_attributes!(:resolved => true, :notices_count => 0) end def unresolve! diff --git a/spec/models/notice_spec.rb b/spec/models/notice_spec.rb index 3914dcd..706e101 100644 --- a/spec/models/notice_spec.rb +++ b/spec/models/notice_spec.rb @@ -106,6 +106,24 @@ describe Notice do end end + describe "email notifications for a resolved issue" do + before do + Errbit::Config.per_app_email_at_notices = true + @app = Factory(:app_with_watcher, :email_at_notices => [1]) + @err = Factory(:err, :problem => Factory(:problem, :app => @app, :notices_count => 100)) + end + + after do + Errbit::Config.per_app_email_at_notices = false + end + + it "should send email notification after 1 notice since an error has been resolved" do + @err.problem.resolve! + Mailer.should_receive(:err_notification). + and_return(mock('email', :deliver => true)) + Factory(:notice, :err => @err) + end + end end -- libgit2 0.21.2