Commit 5d01c0886403c555eec0a0b8ae431dbc6037c9a9
1 parent
0aa4294c
Exists in
master
and in
1 other branch
extra testing of custom intervals for notifications
Showing
1 changed file
with
38 additions
and
1 deletions
Show diff stats
spec/models/notice_observer_spec.rb
@@ -43,7 +43,7 @@ describe NoticeObserver do | @@ -43,7 +43,7 @@ describe NoticeObserver do | ||
43 | end | 43 | end |
44 | end | 44 | end |
45 | 45 | ||
46 | - describe "should send a notification if a notification service is configured" do | 46 | + describe "should send a notification if a notification service is configured with defaults" do |
47 | let(:app) { Fabricate(:app, :email_at_notices => [1], :notification_service => Fabricate(:campfire_notification_service))} | 47 | let(:app) { Fabricate(:app, :email_at_notices => [1], :notification_service => Fabricate(:campfire_notification_service))} |
48 | let(:err) { Fabricate(:err, :problem => Fabricate(:problem, :app => app, :notices_count => 100)) } | 48 | let(:err) { Fabricate(:err, :problem => Fabricate(:problem, :app => app, :notices_count => 100)) } |
49 | let(:backtrace) { Fabricate(:backtrace) } | 49 | let(:backtrace) { Fabricate(:backtrace) } |
@@ -103,4 +103,41 @@ describe NoticeObserver do | @@ -103,4 +103,41 @@ describe NoticeObserver do | ||
103 | Fabricate(:notice, :err => err) | 103 | Fabricate(:notice, :err => err) |
104 | end | 104 | end |
105 | end | 105 | end |
106 | + | ||
107 | + describe "should send a notification at desired intervals" do | ||
108 | + let(:app) { Fabricate(:app, :email_at_notices => [1], :notification_service => Fabricate(:campfire_notification_service, :notify_at_notices => [1,2]))} | ||
109 | + let(:backtrace) { Fabricate(:backtrace) } | ||
110 | + | ||
111 | + before do | ||
112 | + Errbit::Config.per_app_email_at_notices = true | ||
113 | + end | ||
114 | + | ||
115 | + after do | ||
116 | + Errbit::Config.per_app_email_at_notices = false | ||
117 | + end | ||
118 | + | ||
119 | + it "should create a campfire notification on first notice" do | ||
120 | + err = Fabricate(:err, :problem => Fabricate(:problem, :app => app, :notices_count => 1)) | ||
121 | + app.notification_service.should_receive(:create_notification) | ||
122 | + | ||
123 | + Notice.create!(:err => err, :message => 'FooError: Too Much Bar', :server_environment => {'environment-name' => 'production'}, | ||
124 | + :backtrace => backtrace, :notifier => { 'name' => 'Notifier', 'version' => '1', 'url' => 'http://toad.com' }) | ||
125 | + end | ||
126 | + | ||
127 | + it "should create a campfire notification on second notice" do | ||
128 | + err = Fabricate(:err, :problem => Fabricate(:problem, :app => app, :notices_count => 1)) | ||
129 | + app.notification_service.should_receive(:create_notification) | ||
130 | + | ||
131 | + Notice.create!(:err => err, :message => 'FooError: Too Much Bar', :server_environment => {'environment-name' => 'production'}, | ||
132 | + :backtrace => backtrace, :notifier => { 'name' => 'Notifier', 'version' => '1', 'url' => 'http://toad.com' }) | ||
133 | + end | ||
134 | + | ||
135 | + it "should not create a campfire notification on third notice" do | ||
136 | + err = Fabricate(:err, :problem => Fabricate(:problem, :app => app, :notices_count => 1)) | ||
137 | + app.notification_service.should_receive(:create_notification) | ||
138 | + | ||
139 | + Notice.create!(:err => err, :message => 'FooError: Too Much Bar', :server_environment => {'environment-name' => 'production'}, | ||
140 | + :backtrace => backtrace, :notifier => { 'name' => 'Notifier', 'version' => '1', 'url' => 'http://toad.com' }) | ||
141 | + end | ||
142 | + end | ||
106 | end | 143 | end |