Skip to content

Commit 6f24eef

Browse files
author
Joshua Wood
committed
Fail gracefully when sender hasn't been configured. honeybadger-io#25
1 parent bca3a1d commit 6f24eef

File tree

2 files changed

+21
-7
lines changed

2 files changed

+21
-7
lines changed

lib/honeybadger/notice.rb

+3-1
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,10 @@ def initialize(args)
125125

126126
# Public: Send the notice to Honeybadger using the configured sender
127127
#
128-
# Returns a reference to the error in Honeybadger
128+
# Returns a reference to the error in Honeybadger, false if sender isn't
129+
# configured
129130
def deliver
131+
return false unless Honeybadger.sender
130132
Honeybadger.sender.send_to_honeybadger(self)
131133
end
132134

test/unit/notice_test.rb

+18-6
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,26 @@ def stub_request(attrs = {})
2222
:env => { 'three' => 'four' } }.update(attrs))
2323
end
2424

25-
should "deliver to sender" do
26-
sender = stub_sender!
27-
notice = build_notice
28-
notice.stubs(:to_json => { :foo => 'bar' })
25+
context '#deliver' do
26+
context 'sender is configured' do
27+
should "deliver to sender" do
28+
sender = stub_sender!
29+
notice = build_notice
30+
notice.stubs(:to_json => { :foo => 'bar' })
31+
32+
notice.deliver
2933

30-
notice.deliver
34+
assert_received(sender, :send_to_honeybadger) { |expect| expect.with(notice) }
35+
end
36+
end
3137

32-
assert_received(sender, :send_to_honeybadger) { |expect| expect.with(notice) }
38+
context 'sender is not configured' do
39+
should "return false" do
40+
notice = build_notice
41+
Honeybadger.sender = nil
42+
assert_equal false, notice.deliver
43+
end
44+
end
3345
end
3446

3547
should "generate json from as_json template" do

0 commit comments

Comments
 (0)