rollbar 2.26.2 → 2.26.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci.yml +32 -10
- package/.lgtm.yml +7 -7
- package/.prettierignore +18 -0
- package/.vscode/settings.json +39 -0
- package/CHANGELOG.md +121 -35
- package/Gruntfile.js +51 -71
- package/README.md +2 -4
- package/bower.json +1 -3
- package/defaults.js +17 -5
- package/dist/plugins/jquery.min.js +1 -1
- package/dist/rollbar.js +5699 -5052
- package/dist/rollbar.js.map +1 -1
- package/dist/rollbar.min.js +1 -1
- package/dist/rollbar.min.js.map +1 -1
- package/dist/rollbar.named-amd.js +5704 -5062
- package/dist/rollbar.named-amd.js.map +1 -1
- package/dist/rollbar.named-amd.min.js +1 -1
- package/dist/rollbar.named-amd.min.js.map +1 -1
- package/dist/rollbar.noconflict.umd.js +5693 -5052
- package/dist/rollbar.noconflict.umd.js.map +1 -1
- package/dist/rollbar.noconflict.umd.min.js +1 -1
- package/dist/rollbar.noconflict.umd.min.js.map +1 -1
- package/dist/rollbar.snippet.js +1 -1
- package/dist/rollbar.umd.js +5704 -5063
- package/dist/rollbar.umd.js.map +1 -1
- package/dist/rollbar.umd.min.js +1 -1
- package/dist/rollbar.umd.min.js.map +1 -1
- package/docs/extension-exceptions.md +35 -30
- package/docs/migration_v0_to_v1.md +41 -38
- package/index.d.ts +270 -231
- package/karma.conf.js +16 -34
- package/package.json +21 -17
- package/prettier.config.js +7 -0
- package/src/api.js +21 -10
- package/src/apiUtility.js +12 -8
- package/src/browser/core.js +103 -65
- package/src/browser/defaults/scrubFields.js +3 -3
- package/src/browser/detection.js +7 -8
- package/src/browser/domUtility.js +18 -8
- package/src/browser/globalSetup.js +12 -6
- package/src/browser/logger.js +1 -1
- package/src/browser/plugins/jquery.js +35 -35
- package/src/browser/predicates.js +1 -1
- package/src/browser/rollbar.js +1 -1
- package/src/browser/rollbarWrapper.js +8 -5
- package/src/browser/shim.js +43 -19
- package/src/browser/snippet_callback.js +6 -4
- package/src/browser/telemetry.js +573 -354
- package/src/browser/transforms.js +46 -27
- package/src/browser/transport/fetch.js +16 -14
- package/src/browser/transport/xhr.js +29 -13
- package/src/browser/transport.js +82 -25
- package/src/browser/url.js +16 -8
- package/src/browser/wrapGlobals.js +27 -8
- package/src/defaults.js +3 -3
- package/src/errorParser.js +14 -11
- package/src/merge.js +32 -23
- package/src/notifier.js +16 -13
- package/src/predicates.js +43 -23
- package/src/queue.js +71 -39
- package/src/rateLimiter.js +59 -18
- package/src/react-native/logger.js +1 -1
- package/src/react-native/rollbar.js +59 -55
- package/src/react-native/transforms.js +13 -9
- package/src/react-native/transport.js +44 -34
- package/src/rollbar.js +22 -13
- package/src/scrub.js +0 -1
- package/src/server/locals.js +69 -39
- package/src/server/logger.js +4 -4
- package/src/server/parser.js +72 -47
- package/src/server/rollbar.js +133 -55
- package/src/server/sourceMap/stackTrace.js +33 -18
- package/src/server/telemetry/urlHelpers.js +9 -11
- package/src/server/telemetry.js +68 -45
- package/src/server/transforms.js +37 -21
- package/src/server/transport.js +62 -32
- package/src/telemetry.js +92 -28
- package/src/transforms.js +33 -21
- package/src/truncation.js +8 -5
- package/src/utility/headers.js +43 -43
- package/src/utility/replace.js +9 -0
- package/src/utility/traverse.js +1 -1
- package/src/utility.js +89 -52
- package/test/api.test.js +31 -29
- package/test/apiUtility.test.js +43 -44
- package/test/browser.core.test.js +141 -131
- package/test/browser.domUtility.test.js +52 -35
- package/test/browser.predicates.test.js +13 -13
- package/test/browser.rollbar.test.js +597 -503
- package/test/browser.telemetry.test.js +76 -0
- package/test/browser.transforms.test.js +146 -128
- package/test/browser.transport.test.js +54 -46
- package/test/browser.url.test.js +12 -11
- package/test/fixtures/locals.fixtures.js +245 -126
- package/test/notifier.test.js +90 -78
- package/test/predicates.test.js +260 -214
- package/test/queue.test.js +230 -214
- package/test/rateLimiter.test.js +50 -42
- package/test/react-native.rollbar.test.js +149 -115
- package/test/react-native.transforms.test.js +21 -23
- package/test/react-native.transport.test.js +23 -11
- package/test/server.lambda.test.js +70 -53
- package/test/server.locals.test.js +437 -210
- package/test/server.parser.test.js +32 -26
- package/test/server.predicates.test.js +45 -43
- package/test/server.rollbar.test.js +311 -259
- package/test/server.telemetry.test.js +208 -83
- package/test/server.transforms.test.js +455 -361
- package/test/server.transport.test.js +144 -76
- package/test/telemetry.test.js +46 -37
- package/test/transforms.test.js +68 -66
- package/test/truncation.test.js +55 -53
- package/test/utility.test.js +266 -222
- package/webpack.config.js +46 -43
- package/.gitmodules +0 -3
- package/browserstack.browsers.js +0 -153
- package/browserstack.browsers.json +0 -4384
|
@@ -19,42 +19,46 @@ const ValidOpenTracingTracerStub = {
|
|
|
19
19
|
context: () => {
|
|
20
20
|
return {
|
|
21
21
|
toTraceId: () => DUMMY_TRACE_ID,
|
|
22
|
-
toSpanId: () => DUMMY_SPAN_ID
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
22
|
+
toSpanId: () => DUMMY_SPAN_ID,
|
|
23
|
+
};
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
},
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
const InvalidOpenTracingTracerStub = {
|
|
32
|
-
foo: () => {}
|
|
32
|
+
foo: () => {},
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
function TestClientGen() {
|
|
36
36
|
var TestClient = function () {
|
|
37
37
|
this.notifier = {
|
|
38
|
-
addTransform: function() {
|
|
38
|
+
addTransform: function () {
|
|
39
|
+
return this;
|
|
40
|
+
},
|
|
39
41
|
};
|
|
40
42
|
this.queue = {
|
|
41
|
-
addPredicate: function() {
|
|
43
|
+
addPredicate: function () {
|
|
44
|
+
return this;
|
|
45
|
+
},
|
|
42
46
|
};
|
|
43
47
|
this.logCalls = [];
|
|
44
48
|
var logs = 'log,debug,info,warn,warning,error,critical'.split(',');
|
|
45
|
-
for(var i=0, len=logs.length; i < len; i++) {
|
|
49
|
+
for (var i = 0, len = logs.length; i < len; i++) {
|
|
46
50
|
var fn = logs[i].slice(0);
|
|
47
|
-
this[fn] = function(fn, item) {
|
|
48
|
-
this.logCalls.push({func: fn, item: item});
|
|
49
|
-
}.bind(this, fn)
|
|
51
|
+
this[fn] = function (fn, item) {
|
|
52
|
+
this.logCalls.push({ func: fn, item: item });
|
|
53
|
+
}.bind(this, fn);
|
|
50
54
|
}
|
|
51
|
-
this.buildJsonPayload = function(obj) {
|
|
52
|
-
this.logCalls.push({item: obj});
|
|
55
|
+
this.buildJsonPayload = function (obj) {
|
|
56
|
+
this.logCalls.push({ item: obj });
|
|
53
57
|
};
|
|
54
|
-
this.sendJsonPayload = function(json) {
|
|
55
|
-
this.logCalls.push({item: json});
|
|
58
|
+
this.sendJsonPayload = function (json) {
|
|
59
|
+
this.logCalls.push({ item: json });
|
|
56
60
|
};
|
|
57
|
-
this.clearLogCalls = function() {
|
|
61
|
+
this.clearLogCalls = function () {
|
|
58
62
|
this.logCalls = [];
|
|
59
63
|
};
|
|
60
64
|
this.tracer = ValidOpenTracingTracerStub;
|
|
@@ -64,7 +68,7 @@ function TestClientGen() {
|
|
|
64
68
|
}
|
|
65
69
|
|
|
66
70
|
async function wait(ms) {
|
|
67
|
-
return new Promise(resolve => {
|
|
71
|
+
return new Promise((resolve) => {
|
|
68
72
|
setTimeout(resolve, ms);
|
|
69
73
|
});
|
|
70
74
|
}
|
|
@@ -83,190 +87,223 @@ async function nodeThrow(rollbar, callback) {
|
|
|
83
87
|
callback(rollbar);
|
|
84
88
|
}
|
|
85
89
|
|
|
86
|
-
vows
|
|
90
|
+
vows
|
|
91
|
+
.describe('rollbar')
|
|
87
92
|
.addBatch({
|
|
88
|
-
|
|
93
|
+
constructor: {
|
|
89
94
|
'with accessToken': {
|
|
90
|
-
topic: function() {
|
|
95
|
+
topic: function () {
|
|
91
96
|
return new Rollbar('abc123');
|
|
92
97
|
},
|
|
93
|
-
'should have log method': function(r) {
|
|
98
|
+
'should have log method': function (r) {
|
|
94
99
|
assert.isFunction(r.log);
|
|
95
100
|
},
|
|
96
|
-
'should have error method': function(r) {
|
|
101
|
+
'should have error method': function (r) {
|
|
97
102
|
assert.isFunction(r.error);
|
|
98
103
|
},
|
|
99
|
-
'should have buildJsonPayload method': function(r) {
|
|
104
|
+
'should have buildJsonPayload method': function (r) {
|
|
100
105
|
assert.isFunction(r.buildJsonPayload);
|
|
101
106
|
},
|
|
102
|
-
'should have sendJsonPayload method': function(r) {
|
|
107
|
+
'should have sendJsonPayload method': function (r) {
|
|
103
108
|
assert.isFunction(r.sendJsonPayload);
|
|
104
109
|
},
|
|
105
|
-
'should have accessToken in options': function(r) {
|
|
110
|
+
'should have accessToken in options': function (r) {
|
|
106
111
|
assert.equal('abc123', r.options.accessToken);
|
|
107
|
-
}
|
|
112
|
+
},
|
|
108
113
|
},
|
|
109
114
|
'with options': {
|
|
110
|
-
topic: function() {
|
|
111
|
-
return new Rollbar({accessToken: 'abc123'});
|
|
115
|
+
topic: function () {
|
|
116
|
+
return new Rollbar({ accessToken: 'abc123' });
|
|
112
117
|
},
|
|
113
|
-
'should have log method': function(r) {
|
|
118
|
+
'should have log method': function (r) {
|
|
114
119
|
assert.isFunction(r.log);
|
|
115
120
|
},
|
|
116
|
-
'should have error method': function(r) {
|
|
121
|
+
'should have error method': function (r) {
|
|
117
122
|
assert.isFunction(r.error);
|
|
118
123
|
},
|
|
119
|
-
'should have accessToken in options': function(r) {
|
|
124
|
+
'should have accessToken in options': function (r) {
|
|
120
125
|
assert.equal('abc123', r.options.accessToken);
|
|
121
126
|
},
|
|
122
|
-
'should set environment based on default': function(r) {
|
|
127
|
+
'should set environment based on default': function (r) {
|
|
123
128
|
assert.equal(process.env.NODE_ENV, r.options.environment);
|
|
124
|
-
}
|
|
129
|
+
},
|
|
125
130
|
},
|
|
126
131
|
'with more options': {
|
|
127
|
-
topic: function() {
|
|
128
|
-
return new Rollbar({
|
|
132
|
+
topic: function () {
|
|
133
|
+
return new Rollbar({
|
|
134
|
+
accessToken: 'abc123',
|
|
135
|
+
environment: 'fake-env',
|
|
136
|
+
});
|
|
129
137
|
},
|
|
130
|
-
'should have log method': function(r) {
|
|
138
|
+
'should have log method': function (r) {
|
|
131
139
|
assert.isFunction(r.log);
|
|
132
140
|
},
|
|
133
|
-
'should have error method': function(r) {
|
|
141
|
+
'should have error method': function (r) {
|
|
134
142
|
assert.isFunction(r.error);
|
|
135
143
|
},
|
|
136
|
-
'should have accessToken in options': function(r) {
|
|
144
|
+
'should have accessToken in options': function (r) {
|
|
137
145
|
assert.equal('abc123', r.options.accessToken);
|
|
138
146
|
},
|
|
139
|
-
'should set environment based on options': function(r) {
|
|
147
|
+
'should set environment based on options': function (r) {
|
|
140
148
|
assert.equal('fake-env', r.options.environment);
|
|
141
149
|
},
|
|
142
|
-
'should set configured options': function(r) {
|
|
150
|
+
'should set configured options': function (r) {
|
|
143
151
|
assert.equal('fake-env', r.options._configuredOptions.environment);
|
|
144
|
-
}
|
|
152
|
+
},
|
|
145
153
|
},
|
|
146
154
|
'with deprecated options': {
|
|
147
|
-
topic: function() {
|
|
155
|
+
topic: function () {
|
|
148
156
|
return new Rollbar({
|
|
149
157
|
hostWhiteList: ['foo'],
|
|
150
|
-
hostBlackList: ['bar']
|
|
158
|
+
hostBlackList: ['bar'],
|
|
151
159
|
});
|
|
152
160
|
},
|
|
153
|
-
'should replace options': function(r) {
|
|
161
|
+
'should replace options': function (r) {
|
|
154
162
|
assert.equal(r.options.hostWhiteList, undefined);
|
|
155
163
|
assert.equal(r.options.hostBlackList, undefined);
|
|
156
164
|
assert.equal(r.options.hostSafeList, 'foo');
|
|
157
165
|
assert.equal(r.options.hostBlockList, 'bar');
|
|
158
|
-
}
|
|
166
|
+
},
|
|
159
167
|
},
|
|
160
168
|
'with valid tracer': {
|
|
161
169
|
topic: function () {
|
|
162
|
-
var rollbar = new Rollbar({
|
|
170
|
+
var rollbar = new Rollbar({
|
|
171
|
+
captureUncaught: true,
|
|
172
|
+
environment: 'fake-env',
|
|
173
|
+
tracer: ValidOpenTracingTracerStub,
|
|
174
|
+
});
|
|
163
175
|
return rollbar;
|
|
164
176
|
},
|
|
165
177
|
'should configure tracer': function (r) {
|
|
166
178
|
assert.ok(typeof r.client.tracer === 'object');
|
|
167
|
-
}
|
|
179
|
+
},
|
|
168
180
|
},
|
|
169
181
|
'with invalid tracer': {
|
|
170
182
|
topic: function () {
|
|
171
|
-
var rollbar = new Rollbar({
|
|
183
|
+
var rollbar = new Rollbar({
|
|
184
|
+
captureUncaught: true,
|
|
185
|
+
environment: 'fake-env',
|
|
186
|
+
tracer: InvalidOpenTracingTracerStub,
|
|
187
|
+
});
|
|
172
188
|
return rollbar;
|
|
173
189
|
},
|
|
174
190
|
'should configure tracer': function (r) {
|
|
175
191
|
assert.equal(null, r.client.tracer);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
192
|
+
},
|
|
193
|
+
},
|
|
178
194
|
},
|
|
179
|
-
|
|
195
|
+
configure: {
|
|
180
196
|
'with updated options': {
|
|
181
|
-
topic: function() {
|
|
182
|
-
var rollbar = new Rollbar({
|
|
183
|
-
|
|
197
|
+
topic: function () {
|
|
198
|
+
var rollbar = new Rollbar({
|
|
199
|
+
captureUncaught: true,
|
|
200
|
+
environment: 'fake-env',
|
|
201
|
+
});
|
|
202
|
+
rollbar.configure({ captureUncaught: false, environment: 'new-env' });
|
|
184
203
|
return rollbar;
|
|
185
204
|
},
|
|
186
|
-
'should set configured options': function(r) {
|
|
205
|
+
'should set configured options': function (r) {
|
|
187
206
|
assert.equal('new-env', r.options._configuredOptions.environment);
|
|
188
207
|
assert.equal(false, r.options._configuredOptions.captureUncaught);
|
|
189
|
-
}
|
|
208
|
+
},
|
|
190
209
|
},
|
|
191
210
|
'with deprecated options': {
|
|
192
|
-
topic: function() {
|
|
211
|
+
topic: function () {
|
|
193
212
|
var rollbar = new Rollbar({ captureUncaught: true });
|
|
194
213
|
rollbar.configure({
|
|
195
214
|
hostWhiteList: ['foo'],
|
|
196
|
-
hostBlackList: ['bar']
|
|
215
|
+
hostBlackList: ['bar'],
|
|
197
216
|
});
|
|
198
217
|
return rollbar;
|
|
199
218
|
},
|
|
200
|
-
'should replace options': function(r) {
|
|
219
|
+
'should replace options': function (r) {
|
|
201
220
|
assert.equal(r.options.hostWhiteList, undefined);
|
|
202
221
|
assert.equal(r.options.hostBlackList, undefined);
|
|
203
222
|
assert.equal(r.options.hostSafeList, 'foo');
|
|
204
223
|
assert.equal(r.options.hostBlockList, 'bar');
|
|
205
|
-
}
|
|
224
|
+
},
|
|
206
225
|
},
|
|
207
226
|
'with valid tracer': {
|
|
208
|
-
topic: function() {
|
|
209
|
-
var rollbar = new Rollbar({
|
|
227
|
+
topic: function () {
|
|
228
|
+
var rollbar = new Rollbar({
|
|
229
|
+
captureUncaught: true,
|
|
230
|
+
environment: 'fake-env',
|
|
231
|
+
});
|
|
210
232
|
rollbar.configure({ tracer: ValidOpenTracingTracerStub });
|
|
211
233
|
return rollbar;
|
|
212
234
|
},
|
|
213
|
-
'should configure tracer': function(r) {
|
|
235
|
+
'should configure tracer': function (r) {
|
|
214
236
|
assert.equal(ValidOpenTracingTracerStub, r.client.tracer);
|
|
215
|
-
}
|
|
237
|
+
},
|
|
216
238
|
},
|
|
217
239
|
'with invalid tracer': {
|
|
218
|
-
topic: function() {
|
|
219
|
-
var rollbar = new Rollbar({
|
|
240
|
+
topic: function () {
|
|
241
|
+
var rollbar = new Rollbar({
|
|
242
|
+
captureUncaught: true,
|
|
243
|
+
environment: 'fake-env',
|
|
244
|
+
});
|
|
220
245
|
rollbar.configure({ tracer: InvalidOpenTracingTracerStub });
|
|
221
246
|
return rollbar;
|
|
222
247
|
},
|
|
223
|
-
'should configure tracer': function(r) {
|
|
248
|
+
'should configure tracer': function (r) {
|
|
224
249
|
assert.equal(null, r.client.tracer);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
250
|
+
},
|
|
251
|
+
},
|
|
227
252
|
},
|
|
228
|
-
|
|
253
|
+
addTracingInfo: {
|
|
229
254
|
'with valid tracer': {
|
|
230
|
-
topic: function() {
|
|
231
|
-
var rollbar = new Rollbar({
|
|
255
|
+
topic: function () {
|
|
256
|
+
var rollbar = new Rollbar({
|
|
257
|
+
captureUncaught: true,
|
|
258
|
+
environment: 'fake-env',
|
|
259
|
+
tracer: ValidOpenTracingTracerStub,
|
|
260
|
+
});
|
|
232
261
|
return rollbar;
|
|
233
262
|
},
|
|
234
|
-
'should add trace ID and span ID to custom field on item if no custom field set':
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
r
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
263
|
+
'should add trace ID and span ID to custom field on item if no custom field set':
|
|
264
|
+
function (r) {
|
|
265
|
+
const item = { uuid: 'some-uuid', custom: null };
|
|
266
|
+
r.client._addTracingInfo(item);
|
|
267
|
+
assert.equal(DUMMY_TRACE_ID, item.custom.opentracing_trace_id);
|
|
268
|
+
assert.equal(DUMMY_SPAN_ID, item.custom.opentracing_span_id);
|
|
269
|
+
},
|
|
270
|
+
'should add trace ID and span ID to custom field on item even if already has some custom fields':
|
|
271
|
+
function (r) {
|
|
272
|
+
const item = { uuid: 'some-uuid', custom: { foo: 'foo' } };
|
|
273
|
+
r.client._addTracingInfo(item);
|
|
274
|
+
assert.equal(DUMMY_TRACE_ID, item.custom.opentracing_trace_id);
|
|
275
|
+
assert.equal(DUMMY_SPAN_ID, item.custom.opentracing_span_id);
|
|
276
|
+
assert.equal('foo', item.custom.foo);
|
|
277
|
+
},
|
|
247
278
|
},
|
|
248
279
|
'with invalid tracer': {
|
|
249
|
-
topic: function() {
|
|
250
|
-
var rollbar = new Rollbar({
|
|
280
|
+
topic: function () {
|
|
281
|
+
var rollbar = new Rollbar({
|
|
282
|
+
captureUncaught: true,
|
|
283
|
+
environment: 'fake-env',
|
|
284
|
+
tracer: InvalidOpenTracingTracerStub,
|
|
285
|
+
});
|
|
251
286
|
return rollbar;
|
|
252
287
|
},
|
|
253
|
-
'should add trace ID and span ID to custom field on item': function (
|
|
288
|
+
'should add trace ID and span ID to custom field on item': function (
|
|
289
|
+
r,
|
|
290
|
+
) {
|
|
254
291
|
const item = { uuid: 'some-uuid', custom: {} };
|
|
255
292
|
r.client._addTracingInfo(item);
|
|
256
293
|
assert.equal(undefined, item.custom.opentracing_trace_id);
|
|
257
294
|
assert.equal(undefined, item.custom.opentracing_span_id);
|
|
258
|
-
}
|
|
295
|
+
},
|
|
259
296
|
},
|
|
260
297
|
},
|
|
261
|
-
|
|
262
|
-
topic: function() {
|
|
298
|
+
log: {
|
|
299
|
+
topic: function () {
|
|
263
300
|
var client = new (TestClientGen())();
|
|
264
301
|
var rollbar = new Rollbar({ accessToken: 'abc123' }, client);
|
|
265
302
|
return rollbar;
|
|
266
303
|
},
|
|
267
|
-
|
|
304
|
+
message: {
|
|
268
305
|
'with unordered options': {
|
|
269
|
-
'should work with custom, request, callback, message ': function(r) {
|
|
306
|
+
'should work with custom, request, callback, message ': function (r) {
|
|
270
307
|
var message = 'hello';
|
|
271
308
|
var callbackCalled = false;
|
|
272
309
|
var callback = function cb() {
|
|
@@ -281,17 +318,17 @@ vows.describe('rollbar')
|
|
|
281
318
|
assert.deepStrictEqual(item.custom, custom);
|
|
282
319
|
item.callback();
|
|
283
320
|
assert.isTrue(callbackCalled);
|
|
284
|
-
}
|
|
321
|
+
},
|
|
285
322
|
},
|
|
286
323
|
'with old option ordering': {
|
|
287
|
-
'should work': function(r) {
|
|
288
|
-
var message = 'hello'
|
|
289
|
-
r.log(message)
|
|
290
|
-
var item = r.client.logCalls[r.client.logCalls.length - 1].item
|
|
291
|
-
assert.equal(item.message, message)
|
|
324
|
+
'should work': function (r) {
|
|
325
|
+
var message = 'hello';
|
|
326
|
+
r.log(message);
|
|
327
|
+
var item = r.client.logCalls[r.client.logCalls.length - 1].item;
|
|
328
|
+
assert.equal(item.message, message);
|
|
292
329
|
},
|
|
293
|
-
'should work with callback': function(r) {
|
|
294
|
-
var message = 'hello'
|
|
330
|
+
'should work with callback': function (r) {
|
|
331
|
+
var message = 'hello';
|
|
295
332
|
var callbackCalled = false;
|
|
296
333
|
var callback = function cb() {
|
|
297
334
|
callbackCalled = true;
|
|
@@ -302,197 +339,205 @@ vows.describe('rollbar')
|
|
|
302
339
|
item.callback();
|
|
303
340
|
assert.isTrue(callbackCalled);
|
|
304
341
|
},
|
|
305
|
-
'should work with request': function(r) {
|
|
306
|
-
var message = 'hello'
|
|
307
|
-
var request = { method: 'GET' }
|
|
308
|
-
r.log(message, request)
|
|
309
|
-
var item = r.client.logCalls[r.client.logCalls.length - 1].item
|
|
310
|
-
assert.equal(item.message, message)
|
|
311
|
-
assert.equal(item.request, request)
|
|
342
|
+
'should work with request': function (r) {
|
|
343
|
+
var message = 'hello';
|
|
344
|
+
var request = { method: 'GET' };
|
|
345
|
+
r.log(message, request);
|
|
346
|
+
var item = r.client.logCalls[r.client.logCalls.length - 1].item;
|
|
347
|
+
assert.equal(item.message, message);
|
|
348
|
+
assert.equal(item.request, request);
|
|
312
349
|
},
|
|
313
|
-
'should work with request and callback': function(r) {
|
|
314
|
-
var message = 'hello'
|
|
315
|
-
var request = { method: 'GET' }
|
|
350
|
+
'should work with request and callback': function (r) {
|
|
351
|
+
var message = 'hello';
|
|
352
|
+
var request = { method: 'GET' };
|
|
316
353
|
var callbackCalled = false;
|
|
317
354
|
var callback = function cb() {
|
|
318
355
|
callbackCalled = true;
|
|
319
356
|
};
|
|
320
|
-
r.log(message, request, callback)
|
|
321
|
-
var item = r.client.logCalls[r.client.logCalls.length - 1].item
|
|
322
|
-
assert.equal(item.message, message)
|
|
323
|
-
assert.equal(item.request, request)
|
|
357
|
+
r.log(message, request, callback);
|
|
358
|
+
var item = r.client.logCalls[r.client.logCalls.length - 1].item;
|
|
359
|
+
assert.equal(item.message, message);
|
|
360
|
+
assert.equal(item.request, request);
|
|
324
361
|
item.callback();
|
|
325
362
|
assert.isTrue(callbackCalled);
|
|
326
363
|
},
|
|
327
|
-
'should work with request and custom': function(r) {
|
|
328
|
-
var message = 'hello'
|
|
329
|
-
var request = { method: 'GET' }
|
|
330
|
-
var custom = { a: 1, b: 2 }
|
|
331
|
-
r.log(message, request, custom)
|
|
332
|
-
var item = r.client.logCalls[r.client.logCalls.length - 1].item
|
|
333
|
-
assert.equal(item.message, message)
|
|
334
|
-
assert.equal(item.request, request)
|
|
335
|
-
assert.deepStrictEqual(item.custom, custom)
|
|
364
|
+
'should work with request and custom': function (r) {
|
|
365
|
+
var message = 'hello';
|
|
366
|
+
var request = { method: 'GET' };
|
|
367
|
+
var custom = { a: 1, b: 2 };
|
|
368
|
+
r.log(message, request, custom);
|
|
369
|
+
var item = r.client.logCalls[r.client.logCalls.length - 1].item;
|
|
370
|
+
assert.equal(item.message, message);
|
|
371
|
+
assert.equal(item.request, request);
|
|
372
|
+
assert.deepStrictEqual(item.custom, custom);
|
|
336
373
|
},
|
|
337
|
-
'should work with request and custom and callback': function(r) {
|
|
338
|
-
var message = 'hello'
|
|
339
|
-
var request = { method: 'GET' }
|
|
340
|
-
var custom = { a: 1, b: 2 }
|
|
374
|
+
'should work with request and custom and callback': function (r) {
|
|
375
|
+
var message = 'hello';
|
|
376
|
+
var request = { method: 'GET' };
|
|
377
|
+
var custom = { a: 1, b: 2 };
|
|
341
378
|
var callbackCalled = false;
|
|
342
379
|
var callback = function cb() {
|
|
343
380
|
callbackCalled = true;
|
|
344
381
|
};
|
|
345
|
-
r.log(message, request, custom, callback)
|
|
346
|
-
var item = r.client.logCalls[r.client.logCalls.length - 1].item
|
|
347
|
-
assert.equal(item.message, message)
|
|
348
|
-
assert.equal(item.request, request)
|
|
349
|
-
assert.deepStrictEqual(item.custom, custom)
|
|
382
|
+
r.log(message, request, custom, callback);
|
|
383
|
+
var item = r.client.logCalls[r.client.logCalls.length - 1].item;
|
|
384
|
+
assert.equal(item.message, message);
|
|
385
|
+
assert.equal(item.request, request);
|
|
386
|
+
assert.deepStrictEqual(item.custom, custom);
|
|
350
387
|
item.callback();
|
|
351
388
|
assert.isTrue(callbackCalled);
|
|
352
|
-
}
|
|
353
|
-
}
|
|
389
|
+
},
|
|
390
|
+
},
|
|
354
391
|
},
|
|
355
|
-
|
|
356
|
-
topic: function() {
|
|
392
|
+
info: {
|
|
393
|
+
topic: function () {
|
|
357
394
|
// Uses real client and stubs queue.addItem so transforms can run.
|
|
358
395
|
var rollbar = new Rollbar({
|
|
359
396
|
accessToken: 'abc123',
|
|
360
|
-
captureUncaught: false
|
|
397
|
+
captureUncaught: false,
|
|
361
398
|
});
|
|
362
399
|
var notifier = rollbar.client.notifier;
|
|
363
400
|
rollbar.addItemStub = sinon.stub(notifier.queue, 'addItem');
|
|
364
401
|
|
|
365
402
|
return rollbar;
|
|
366
403
|
},
|
|
367
|
-
'should send message when called with only null argument': function(
|
|
404
|
+
'should send message when called with only null argument': function (
|
|
405
|
+
r,
|
|
406
|
+
) {
|
|
368
407
|
var addItemStub = r.addItemStub;
|
|
369
408
|
|
|
370
409
|
r.info(null);
|
|
371
410
|
assert.isTrue(addItemStub.called);
|
|
372
411
|
if (addItemStub.called) {
|
|
373
|
-
assert.equal(
|
|
412
|
+
assert.equal(
|
|
413
|
+
addItemStub.getCall(0).args[3].data.body.message.body,
|
|
414
|
+
'Item sent with null or missing arguments.',
|
|
415
|
+
);
|
|
374
416
|
}
|
|
375
417
|
addItemStub.reset();
|
|
376
418
|
},
|
|
377
|
-
'should send message when called with no arguments': function(r) {
|
|
419
|
+
'should send message when called with no arguments': function (r) {
|
|
378
420
|
var addItemStub = r.addItemStub;
|
|
379
421
|
|
|
380
422
|
r.info();
|
|
381
423
|
assert.isTrue(addItemStub.called);
|
|
382
424
|
if (addItemStub.called) {
|
|
383
|
-
assert.equal(
|
|
425
|
+
assert.equal(
|
|
426
|
+
addItemStub.getCall(0).args[3].data.body.message.body,
|
|
427
|
+
'Item sent with null or missing arguments.',
|
|
428
|
+
);
|
|
384
429
|
}
|
|
385
430
|
addItemStub.reset();
|
|
386
|
-
}
|
|
431
|
+
},
|
|
387
432
|
},
|
|
388
|
-
|
|
433
|
+
error: {
|
|
389
434
|
'with unordered options': {
|
|
390
|
-
'should work with custom, request, callback, message ': function(r) {
|
|
391
|
-
var err = new Error('hello!')
|
|
435
|
+
'should work with custom, request, callback, message ': function (r) {
|
|
436
|
+
var err = new Error('hello!');
|
|
392
437
|
var callbackCalled = false;
|
|
393
438
|
var callback = function cb() {
|
|
394
439
|
callbackCalled = true;
|
|
395
440
|
};
|
|
396
|
-
var request = { method: 'GET' }
|
|
397
|
-
var custom = { a: 1, b: 2 }
|
|
398
|
-
r.log(custom, request, callback, err)
|
|
399
|
-
var item = r.client.logCalls[r.client.logCalls.length - 1].item
|
|
400
|
-
assert.equal(item.err, err)
|
|
401
|
-
assert.equal(item.request, request)
|
|
402
|
-
assert.deepStrictEqual(item.custom, custom)
|
|
441
|
+
var request = { method: 'GET' };
|
|
442
|
+
var custom = { a: 1, b: 2 };
|
|
443
|
+
r.log(custom, request, callback, err);
|
|
444
|
+
var item = r.client.logCalls[r.client.logCalls.length - 1].item;
|
|
445
|
+
assert.equal(item.err, err);
|
|
446
|
+
assert.equal(item.request, request);
|
|
447
|
+
assert.deepStrictEqual(item.custom, custom);
|
|
403
448
|
item.callback();
|
|
404
449
|
assert.isTrue(callbackCalled);
|
|
405
|
-
}
|
|
450
|
+
},
|
|
406
451
|
},
|
|
407
452
|
'with old option ordering': {
|
|
408
|
-
'should work': function(r) {
|
|
409
|
-
var err = new Error('hello!')
|
|
410
|
-
r.log(err)
|
|
411
|
-
var item = r.client.logCalls[r.client.logCalls.length - 1].item
|
|
412
|
-
assert.equal(item.err, err)
|
|
453
|
+
'should work': function (r) {
|
|
454
|
+
var err = new Error('hello!');
|
|
455
|
+
r.log(err);
|
|
456
|
+
var item = r.client.logCalls[r.client.logCalls.length - 1].item;
|
|
457
|
+
assert.equal(item.err, err);
|
|
413
458
|
},
|
|
414
|
-
'should work with callback': function(r) {
|
|
415
|
-
var err = new Error('hello!')
|
|
459
|
+
'should work with callback': function (r) {
|
|
460
|
+
var err = new Error('hello!');
|
|
416
461
|
var callbackCalled = false;
|
|
417
462
|
var callback = function cb() {
|
|
418
463
|
callbackCalled = true;
|
|
419
464
|
};
|
|
420
|
-
r.log(err, callback)
|
|
421
|
-
var item = r.client.logCalls[r.client.logCalls.length - 1].item
|
|
422
|
-
assert.equal(item.err, err)
|
|
465
|
+
r.log(err, callback);
|
|
466
|
+
var item = r.client.logCalls[r.client.logCalls.length - 1].item;
|
|
467
|
+
assert.equal(item.err, err);
|
|
423
468
|
item.callback();
|
|
424
469
|
assert.isTrue(callbackCalled);
|
|
425
470
|
},
|
|
426
|
-
'should work with request': function(r) {
|
|
427
|
-
var err = new Error('hello!')
|
|
428
|
-
var request = { method: 'GET' }
|
|
429
|
-
r.log(err, request)
|
|
430
|
-
var item = r.client.logCalls[r.client.logCalls.length - 1].item
|
|
431
|
-
assert.equal(item.err, err)
|
|
432
|
-
assert.equal(item.request, request)
|
|
471
|
+
'should work with request': function (r) {
|
|
472
|
+
var err = new Error('hello!');
|
|
473
|
+
var request = { method: 'GET' };
|
|
474
|
+
r.log(err, request);
|
|
475
|
+
var item = r.client.logCalls[r.client.logCalls.length - 1].item;
|
|
476
|
+
assert.equal(item.err, err);
|
|
477
|
+
assert.equal(item.request, request);
|
|
433
478
|
},
|
|
434
|
-
'should work with request and callback': function(r) {
|
|
435
|
-
var err = new Error('hello!')
|
|
436
|
-
var request = { method: 'GET' }
|
|
479
|
+
'should work with request and callback': function (r) {
|
|
480
|
+
var err = new Error('hello!');
|
|
481
|
+
var request = { method: 'GET' };
|
|
437
482
|
var callbackCalled = false;
|
|
438
483
|
var callback = function cb() {
|
|
439
484
|
callbackCalled = true;
|
|
440
485
|
};
|
|
441
|
-
r.log(err, request, callback)
|
|
442
|
-
var item = r.client.logCalls[r.client.logCalls.length - 1].item
|
|
443
|
-
assert.equal(item.err, err)
|
|
444
|
-
assert.equal(item.request, request)
|
|
486
|
+
r.log(err, request, callback);
|
|
487
|
+
var item = r.client.logCalls[r.client.logCalls.length - 1].item;
|
|
488
|
+
assert.equal(item.err, err);
|
|
489
|
+
assert.equal(item.request, request);
|
|
445
490
|
item.callback();
|
|
446
491
|
assert.isTrue(callbackCalled);
|
|
447
492
|
},
|
|
448
|
-
'should work with request and custom': function(r) {
|
|
449
|
-
var err = new Error('hello!')
|
|
450
|
-
var request = { method: 'GET' }
|
|
451
|
-
var custom = { a: 1, b: 2 }
|
|
452
|
-
r.log(err, request, custom)
|
|
453
|
-
var item = r.client.logCalls[r.client.logCalls.length - 1].item
|
|
454
|
-
assert.equal(item.err, err)
|
|
455
|
-
assert.equal(item.request, request)
|
|
456
|
-
assert.deepStrictEqual(item.custom, custom)
|
|
493
|
+
'should work with request and custom': function (r) {
|
|
494
|
+
var err = new Error('hello!');
|
|
495
|
+
var request = { method: 'GET' };
|
|
496
|
+
var custom = { a: 1, b: 2 };
|
|
497
|
+
r.log(err, request, custom);
|
|
498
|
+
var item = r.client.logCalls[r.client.logCalls.length - 1].item;
|
|
499
|
+
assert.equal(item.err, err);
|
|
500
|
+
assert.equal(item.request, request);
|
|
501
|
+
assert.deepStrictEqual(item.custom, custom);
|
|
457
502
|
},
|
|
458
|
-
'should work with request and custom and callback': function(r) {
|
|
459
|
-
var err = new Error('hello!')
|
|
460
|
-
var request = { method: 'GET' }
|
|
461
|
-
var custom = { a: 1, b: 2 }
|
|
503
|
+
'should work with request and custom and callback': function (r) {
|
|
504
|
+
var err = new Error('hello!');
|
|
505
|
+
var request = { method: 'GET' };
|
|
506
|
+
var custom = { a: 1, b: 2 };
|
|
462
507
|
var callbackCalled = false;
|
|
463
508
|
var callback = function cb() {
|
|
464
509
|
callbackCalled = true;
|
|
465
510
|
};
|
|
466
|
-
r.log(err, request, custom, callback)
|
|
467
|
-
var item = r.client.logCalls[r.client.logCalls.length - 1].item
|
|
468
|
-
assert.equal(item.err, err)
|
|
469
|
-
assert.equal(item.request, request)
|
|
470
|
-
assert.deepStrictEqual(item.custom, custom)
|
|
511
|
+
r.log(err, request, custom, callback);
|
|
512
|
+
var item = r.client.logCalls[r.client.logCalls.length - 1].item;
|
|
513
|
+
assert.equal(item.err, err);
|
|
514
|
+
assert.equal(item.request, request);
|
|
515
|
+
assert.deepStrictEqual(item.custom, custom);
|
|
471
516
|
item.callback();
|
|
472
517
|
assert.isTrue(callbackCalled);
|
|
473
|
-
}
|
|
474
|
-
}
|
|
475
|
-
}
|
|
518
|
+
},
|
|
519
|
+
},
|
|
520
|
+
},
|
|
476
521
|
},
|
|
477
522
|
// captureUncaught tests are set up using subtopics because Rollbar's node.js handlers
|
|
478
523
|
// are treated as global and concurrent access will lead to handlers being removed
|
|
479
524
|
// unexpectedly. (Subtopics execute sequentially.)
|
|
480
|
-
|
|
525
|
+
captureUncaught: {
|
|
481
526
|
'enabled in constructor': {
|
|
482
|
-
topic: function() {
|
|
527
|
+
topic: function () {
|
|
483
528
|
var rollbar = new Rollbar({
|
|
484
529
|
accessToken: 'abc123',
|
|
485
|
-
captureUncaught: true
|
|
530
|
+
captureUncaught: true,
|
|
486
531
|
});
|
|
487
532
|
var notifier = rollbar.client.notifier;
|
|
488
533
|
rollbar.logStub = sinon.stub(notifier, 'log');
|
|
489
534
|
|
|
490
535
|
nodeThrow(rollbar, this.callback);
|
|
491
536
|
},
|
|
492
|
-
'should have locals disabled': function(r) {
|
|
537
|
+
'should have locals disabled': function (r) {
|
|
493
538
|
assert.equal(r.client.notifier.locals, undefined);
|
|
494
539
|
},
|
|
495
|
-
'should log': function(r) {
|
|
540
|
+
'should log': function (r) {
|
|
496
541
|
var logStub = r.logStub;
|
|
497
542
|
|
|
498
543
|
assert.isTrue(logStub.called);
|
|
@@ -502,14 +547,14 @@ vows.describe('rollbar')
|
|
|
502
547
|
logStub.reset();
|
|
503
548
|
},
|
|
504
549
|
'disabled in configure': {
|
|
505
|
-
topic: function(r) {
|
|
550
|
+
topic: function (r) {
|
|
506
551
|
r.configure({
|
|
507
|
-
captureUncaught: false
|
|
552
|
+
captureUncaught: false,
|
|
508
553
|
});
|
|
509
554
|
|
|
510
555
|
nodeThrow(r, this.callback);
|
|
511
556
|
},
|
|
512
|
-
'should not log': function(r) {
|
|
557
|
+
'should not log': function (r) {
|
|
513
558
|
var notifier = r.client.notifier;
|
|
514
559
|
var logStub = r.logStub;
|
|
515
560
|
|
|
@@ -517,61 +562,64 @@ vows.describe('rollbar')
|
|
|
517
562
|
notifier.log.restore();
|
|
518
563
|
},
|
|
519
564
|
'disabled in constructor': {
|
|
520
|
-
topic: function() {
|
|
565
|
+
topic: function () {
|
|
521
566
|
var rollbar = new Rollbar({
|
|
522
567
|
accessToken: 'abc123',
|
|
523
|
-
captureUncaught: false
|
|
568
|
+
captureUncaught: false,
|
|
524
569
|
});
|
|
525
570
|
var notifier = rollbar.client.notifier;
|
|
526
571
|
rollbar.logStub = sinon.stub(notifier, 'log');
|
|
527
572
|
|
|
528
573
|
nodeThrow(rollbar, this.callback);
|
|
529
574
|
},
|
|
530
|
-
'should not log': function(r) {
|
|
575
|
+
'should not log': function (r) {
|
|
531
576
|
var logStub = r.logStub;
|
|
532
577
|
|
|
533
578
|
assert.isFalse(logStub.called);
|
|
534
579
|
logStub.reset();
|
|
535
580
|
},
|
|
536
581
|
'enabled in configure': {
|
|
537
|
-
topic: function(r) {
|
|
582
|
+
topic: function (r) {
|
|
538
583
|
r.configure({
|
|
539
|
-
captureUncaught: true
|
|
584
|
+
captureUncaught: true,
|
|
540
585
|
});
|
|
541
586
|
|
|
542
587
|
nodeThrow(r, this.callback);
|
|
543
588
|
},
|
|
544
|
-
'should log': function(r) {
|
|
589
|
+
'should log': function (r) {
|
|
545
590
|
var notifier = r.client.notifier;
|
|
546
591
|
var logStub = r.logStub;
|
|
547
592
|
|
|
548
593
|
assert.isTrue(logStub.called);
|
|
549
594
|
if (logStub.called) {
|
|
550
|
-
assert.equal(
|
|
595
|
+
assert.equal(
|
|
596
|
+
logStub.getCall(0).args[0].err.message,
|
|
597
|
+
'node error',
|
|
598
|
+
);
|
|
551
599
|
}
|
|
552
600
|
notifier.log.restore();
|
|
553
|
-
}
|
|
554
|
-
}
|
|
555
|
-
}
|
|
556
|
-
}
|
|
557
|
-
}
|
|
601
|
+
},
|
|
602
|
+
},
|
|
603
|
+
},
|
|
604
|
+
},
|
|
605
|
+
},
|
|
558
606
|
},
|
|
559
607
|
// captureUnhandledRejections tests are set up using subtopics because Rollbar's node.js handlers
|
|
560
608
|
// are treated as global and concurrent access will lead to handlers being removed
|
|
561
609
|
// unexpectedly. (Subtopics execute sequentially.)
|
|
562
|
-
|
|
610
|
+
captureUnhandledRejections: {
|
|
563
611
|
'enabled in constructor': {
|
|
564
|
-
topic: function() {
|
|
612
|
+
topic: function () {
|
|
565
613
|
var rollbar = new Rollbar({
|
|
566
614
|
accessToken: 'abc123',
|
|
567
|
-
captureUnhandledRejections: true
|
|
615
|
+
captureUnhandledRejections: true,
|
|
568
616
|
});
|
|
569
617
|
var notifier = rollbar.client.notifier;
|
|
570
618
|
rollbar.logStub = sinon.stub(notifier, 'log');
|
|
571
619
|
|
|
572
620
|
nodeReject(rollbar, this.callback);
|
|
573
621
|
},
|
|
574
|
-
'should log': function(r) {
|
|
622
|
+
'should log': function (r) {
|
|
575
623
|
var logStub = r.logStub;
|
|
576
624
|
|
|
577
625
|
assert.isTrue(logStub.called);
|
|
@@ -581,14 +629,14 @@ vows.describe('rollbar')
|
|
|
581
629
|
logStub.reset();
|
|
582
630
|
},
|
|
583
631
|
'disabled in configure': {
|
|
584
|
-
topic: function(r) {
|
|
632
|
+
topic: function (r) {
|
|
585
633
|
r.configure({
|
|
586
|
-
captureUnhandledRejections: false
|
|
634
|
+
captureUnhandledRejections: false,
|
|
587
635
|
});
|
|
588
636
|
|
|
589
637
|
nodeReject(r, this.callback);
|
|
590
638
|
},
|
|
591
|
-
'should not log': function(r) {
|
|
639
|
+
'should not log': function (r) {
|
|
592
640
|
var notifier = r.client.notifier;
|
|
593
641
|
var logStub = r.logStub;
|
|
594
642
|
|
|
@@ -596,81 +644,85 @@ vows.describe('rollbar')
|
|
|
596
644
|
notifier.log.restore();
|
|
597
645
|
},
|
|
598
646
|
'disabled in constructor': {
|
|
599
|
-
topic: function() {
|
|
647
|
+
topic: function () {
|
|
600
648
|
var rollbar = new Rollbar({
|
|
601
649
|
accessToken: 'abc123',
|
|
602
|
-
captureUnhandledRejections: false
|
|
650
|
+
captureUnhandledRejections: false,
|
|
603
651
|
});
|
|
604
652
|
var notifier = rollbar.client.notifier;
|
|
605
653
|
rollbar.logStub = sinon.stub(notifier, 'log');
|
|
606
654
|
|
|
607
655
|
nodeReject(rollbar, this.callback);
|
|
608
656
|
},
|
|
609
|
-
'should not log': function(r) {
|
|
657
|
+
'should not log': function (r) {
|
|
610
658
|
var logStub = r.logStub;
|
|
611
659
|
|
|
612
660
|
assert.isFalse(logStub.called);
|
|
613
661
|
logStub.reset();
|
|
614
662
|
},
|
|
615
663
|
'enabled in configure': {
|
|
616
|
-
topic: function(r) {
|
|
664
|
+
topic: function (r) {
|
|
617
665
|
r.configure({
|
|
618
|
-
captureUnhandledRejections: true
|
|
666
|
+
captureUnhandledRejections: true,
|
|
619
667
|
});
|
|
620
668
|
|
|
621
669
|
nodeReject(r, this.callback);
|
|
622
670
|
},
|
|
623
|
-
'should log': function(r) {
|
|
671
|
+
'should log': function (r) {
|
|
624
672
|
var notifier = r.client.notifier;
|
|
625
673
|
var logStub = r.logStub;
|
|
626
674
|
|
|
627
675
|
assert.isTrue(logStub.called);
|
|
628
676
|
if (logStub.called) {
|
|
629
|
-
assert.equal(
|
|
677
|
+
assert.equal(
|
|
678
|
+
logStub.getCall(0).args[0].err.message,
|
|
679
|
+
'node reject',
|
|
680
|
+
);
|
|
630
681
|
}
|
|
631
682
|
notifier.log.restore();
|
|
632
|
-
}
|
|
633
|
-
}
|
|
634
|
-
}
|
|
635
|
-
}
|
|
636
|
-
}
|
|
683
|
+
},
|
|
684
|
+
},
|
|
685
|
+
},
|
|
686
|
+
},
|
|
687
|
+
},
|
|
637
688
|
},
|
|
638
|
-
|
|
639
|
-
topic: function() {
|
|
689
|
+
buildJsonPayload: {
|
|
690
|
+
topic: function () {
|
|
640
691
|
var client = new (TestClientGen())();
|
|
641
|
-
var rollbar = new Rollbar({accessToken: 'abc123'}, client);
|
|
692
|
+
var rollbar = new Rollbar({ accessToken: 'abc123' }, client);
|
|
642
693
|
return rollbar;
|
|
643
694
|
},
|
|
644
|
-
'should work': function(r) {
|
|
695
|
+
'should work': function (r) {
|
|
645
696
|
var obj = { foo: 'bar' };
|
|
646
697
|
r.buildJsonPayload(obj);
|
|
647
698
|
var item = r.client.logCalls[r.client.logCalls.length - 1].item;
|
|
648
699
|
assert.equal(obj, item);
|
|
649
|
-
}
|
|
700
|
+
},
|
|
650
701
|
},
|
|
651
|
-
|
|
652
|
-
topic: function() {
|
|
702
|
+
sendJsonPayload: {
|
|
703
|
+
topic: function () {
|
|
653
704
|
var client = new (TestClientGen())();
|
|
654
|
-
var rollbar = new Rollbar({accessToken: 'abc123'}, client);
|
|
705
|
+
var rollbar = new Rollbar({ accessToken: 'abc123' }, client);
|
|
655
706
|
return rollbar;
|
|
656
707
|
},
|
|
657
|
-
'should work': function(r) {
|
|
658
|
-
var json =
|
|
708
|
+
'should work': function (r) {
|
|
709
|
+
var json = '{ "foo": "bar" }';
|
|
659
710
|
r.sendJsonPayload(json);
|
|
660
711
|
var item = r.client.logCalls[r.client.logCalls.length - 1].item;
|
|
661
712
|
assert.equal(json, item);
|
|
662
|
-
}
|
|
713
|
+
},
|
|
663
714
|
},
|
|
664
|
-
|
|
665
|
-
topic: function() {
|
|
715
|
+
singleton: {
|
|
716
|
+
topic: function () {
|
|
666
717
|
var client = new (TestClientGen())();
|
|
667
|
-
return Rollbar.init({accessToken: 'abc123'}, client);
|
|
718
|
+
return Rollbar.init({ accessToken: 'abc123' }, client);
|
|
668
719
|
},
|
|
669
|
-
'should allow log on constructor to pass through': function(r) {
|
|
720
|
+
'should allow log on constructor to pass through': function (r) {
|
|
670
721
|
r.log('hello 1');
|
|
671
722
|
Rollbar.log('hello 2');
|
|
672
723
|
assert.equal(r.client.logCalls[0].item.message, 'hello 1');
|
|
673
724
|
assert.equal(r.client.logCalls[1].item.message, 'hello 2');
|
|
674
|
-
}
|
|
675
|
-
}
|
|
676
|
-
})
|
|
725
|
+
},
|
|
726
|
+
},
|
|
727
|
+
})
|
|
728
|
+
.export(module, { error: false });
|