forked from instructure/canvas-lms
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsentry_proxy_spec.rb
More file actions
69 lines (57 loc) · 2.19 KB
/
Copy pathsentry_proxy_spec.rb
File metadata and controls
69 lines (57 loc) · 2.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#
# Copyright (C) 2015 - present Instructure, Inc.
#
# This file is part of Canvas.
#
# Canvas is free software: you can redistribute it and/or modify it under
# the terms of the GNU Affero General Public License as published by the Free
# Software Foundation, version 3 of the License.
#
# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
# details.
#
# You should have received a copy of the GNU Affero General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
require_relative "../spec_helper"
describe SentryProxy do
let(:data){ {a: 'b', c: 'd'} }
before(:each){ SentryProxy.clear_ignorable_errors }
class MyCustomError < StandardError
end
describe ".capture" do
it "forwards exceptions on to raven" do
e = MyCustomError.new
Raven.expects(:capture_exception).with(e, data)
SentryProxy.capture(e, data)
end
it "passes messages to the capture_message raven method" do
e = "Some Message"
Raven.expects(:capture_message).with(e, data)
SentryProxy.capture(e, data)
end
it "changes symbols to strings because raven chokes otherwise" do
e = :some_exception_type
Raven.expects(:capture_message).with("some_exception_type", data)
SentryProxy.capture(e, data)
end
it "does not send the message if configured as ignorable" do
SentryProxy.register_ignorable_error(MyCustomError)
e = MyCustomError.new
Raven.expects(:capture_exception).times(0)
SentryProxy.capture(e, data)
end
end
describe ".register_ignorable_error" do
it "keeps track of errors we don't care about reporting" do
SentryProxy.register_ignorable_error(MyCustomError)
expect(SentryProxy.ignorable_errors).to include(MyCustomError)
end
it "prevents the same error from being registered many times" do
start_count = SentryProxy.ignorable_errors.size
10.times { SentryProxy.register_ignorable_error(MyCustomError) }
expect(SentryProxy.ignorable_errors.size).to eq(start_count + 1)
end
end
end