-
Notifications
You must be signed in to change notification settings - Fork 62
/
honeybadger.spec.coffee
72 lines (54 loc) · 2.09 KB
/
honeybadger.spec.coffee
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
70
71
72
goog.provide 'honeybadger.spec'
goog.require 'honeybadger'
describe 'Honeybadger', ->
beforeEach () ->
Honeybadger.configuration.reset()
it 'has a configuration object', ->
expect(Honeybadger.configuration).toBeDefined()
describe '.configure', ->
it 'configures Honeybadger', ->
expect(Honeybadger.configure).toBeDefined()
Honeybadger.configure
api_key: 'asdf'
expect(Honeybadger.configuration.api_key).toEqual('asdf')
it 'is chainable', ->
expect(Honeybadger.configure({})).toBe(Honeybadger)
it 'has a context object', ->
expect(Honeybadger.context).toBeDefined()
describe '.setContext', ->
it 'merges existing context', ->
Honeybadger.setContext({ user_id: '1' })
Honeybadger.setContext({ foo: 'bar' })
expect(Honeybadger.context.user_id).toBeDefined()
expect(Honeybadger.context['user_id']).toEqual('1')
expect(Honeybadger.context.foo).toBeDefined()
expect(Honeybadger.context['foo']).toEqual('bar')
it 'is chainable', ->
expect(Honeybadger.setContext({ user_id: 1 })).toBe(Honeybadger)
describe '.resetContext', ->
it 'empties the context with no arguments', ->
Honeybadger.setContext({ user_id: '1' })
Honeybadger.resetContext()
expect(Honeybadger.context).toEqual({})
it 'replaces the context with arguments', ->
Honeybadger.setContext({ user_id: '1' })
Honeybadger.resetContext({ foo: 'bar' })
expect(Honeybadger.context).toEqual({ foo: 'bar' })
it 'is chainable', ->
expect(Honeybadger.resetContext()).toBe(Honeybadger)
it 'responds to notify', ->
expect(Honeybadger.notify).toBeDefined()
describe '.notify', ->
it 'delivers the notice', ->
spyOn(Honeybadger, '_sendRequest').andCallThrough()
notice = null
Honeybadger.configure
api_key: '780b8d0c'
ssl: false
host: 'api.honeybadger.dev'
try
'foo'.bar()
catch error
Honeybadger.notify(error)
notice = new Notice({ error: error })
expect(Honeybadger._sendRequest).toHaveBeenCalledWith(notice.toJSON())