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
|
@@ -7,11 +7,11 @@ var Rollbar = require('../src/react-native/rollbar');
|
|
|
7
7
|
var rollbarConfig = {
|
|
8
8
|
accessToken: 'POST_CLIENT_ITEM_TOKEN',
|
|
9
9
|
captureUncaught: true,
|
|
10
|
-
captureUnhandledRejections: true
|
|
11
|
-
}
|
|
10
|
+
captureUnhandledRejections: true,
|
|
11
|
+
};
|
|
12
12
|
var rollbar = new Rollbar(rollbarConfig);
|
|
13
13
|
|
|
14
|
-
describe('sendJsonPayload', function() {
|
|
14
|
+
describe('sendJsonPayload', function () {
|
|
15
15
|
var uuid = 'd4c7acef55bf4c9ea95e4fe9428a8287';
|
|
16
16
|
|
|
17
17
|
before(function (done) {
|
|
@@ -25,16 +25,28 @@ describe('sendJsonPayload', function() {
|
|
|
25
25
|
});
|
|
26
26
|
|
|
27
27
|
function stubResponse(code, err, message) {
|
|
28
|
-
window.fetch.returns(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
window.fetch.returns(
|
|
29
|
+
Promise.resolve(
|
|
30
|
+
new Response(
|
|
31
|
+
JSON.stringify({
|
|
32
|
+
err: err,
|
|
33
|
+
message: message,
|
|
34
|
+
result: { uuid: uuid },
|
|
35
|
+
}),
|
|
36
|
+
{
|
|
37
|
+
status: code,
|
|
38
|
+
statusText: message,
|
|
39
|
+
headers: { 'Content-Type': 'application/json' },
|
|
40
|
+
},
|
|
41
|
+
),
|
|
42
|
+
),
|
|
43
|
+
);
|
|
32
44
|
}
|
|
33
45
|
|
|
34
|
-
it('should callback with the right value on success', function(done) {
|
|
46
|
+
it('should callback with the right value on success', function (done) {
|
|
35
47
|
stubResponse(200, 0, 'OK');
|
|
36
48
|
|
|
37
|
-
var json = JSON.stringify({foo: 'baaar'});
|
|
49
|
+
var json = JSON.stringify({ foo: 'baaar' });
|
|
38
50
|
|
|
39
51
|
rollbar.sendJsonPayload(json);
|
|
40
52
|
|
|
@@ -53,50 +65,50 @@ const ValidOpenTracingTracerStub = {
|
|
|
53
65
|
return {
|
|
54
66
|
active: () => {
|
|
55
67
|
return {
|
|
56
|
-
setTag: () => {
|
|
68
|
+
setTag: () => {},
|
|
57
69
|
context: () => {
|
|
58
70
|
return {
|
|
59
71
|
toTraceId: () => DUMMY_TRACE_ID,
|
|
60
|
-
toSpanId: () => DUMMY_SPAN_ID
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
72
|
+
toSpanId: () => DUMMY_SPAN_ID,
|
|
73
|
+
};
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
},
|
|
67
79
|
};
|
|
68
80
|
|
|
69
81
|
const InvalidOpenTracingTracerStub = {
|
|
70
|
-
foo: () => {
|
|
82
|
+
foo: () => {},
|
|
71
83
|
};
|
|
72
84
|
|
|
73
85
|
function TestClientGen() {
|
|
74
|
-
var TestClient = function() {
|
|
86
|
+
var TestClient = function () {
|
|
75
87
|
this.transforms = [];
|
|
76
88
|
this.predicates = [];
|
|
77
89
|
this.notifier = {
|
|
78
|
-
addTransform: function(t) {
|
|
90
|
+
addTransform: function (t) {
|
|
79
91
|
this.transforms.push(t);
|
|
80
92
|
return this.notifier;
|
|
81
|
-
}.bind(this)
|
|
93
|
+
}.bind(this),
|
|
82
94
|
};
|
|
83
95
|
this.queue = {
|
|
84
|
-
addPredicate: function(p) {
|
|
96
|
+
addPredicate: function (p) {
|
|
85
97
|
this.predicates.push(p);
|
|
86
98
|
return this.queue;
|
|
87
|
-
}.bind(this)
|
|
99
|
+
}.bind(this),
|
|
88
100
|
};
|
|
89
101
|
this.logCalls = [];
|
|
90
102
|
var logs = 'log,debug,info,warn,warning,error,critical'.split(',');
|
|
91
|
-
for (var i=0, len=logs.length; i < len; i++) {
|
|
103
|
+
for (var i = 0, len = logs.length; i < len; i++) {
|
|
92
104
|
var fn = logs[i].slice(0);
|
|
93
|
-
this[fn] = function(fn, item) {
|
|
94
|
-
this.logCalls.push({func: fn, item: item})
|
|
95
|
-
}.bind(this, fn)
|
|
105
|
+
this[fn] = function (fn, item) {
|
|
106
|
+
this.logCalls.push({ func: fn, item: item });
|
|
107
|
+
}.bind(this, fn);
|
|
96
108
|
}
|
|
97
109
|
this.options = {};
|
|
98
110
|
this.payloadData = {};
|
|
99
|
-
this.configure = function(o, payloadData) {
|
|
111
|
+
this.configure = function (o, payloadData) {
|
|
100
112
|
this.options = o;
|
|
101
113
|
this.payloadData = payloadData;
|
|
102
114
|
};
|
|
@@ -105,8 +117,8 @@ function TestClientGen() {
|
|
|
105
117
|
return TestClient;
|
|
106
118
|
}
|
|
107
119
|
|
|
108
|
-
describe('Rollbar()', function() {
|
|
109
|
-
it('should have all of the expected methods with a real client', function(done) {
|
|
120
|
+
describe('Rollbar()', function () {
|
|
121
|
+
it('should have all of the expected methods with a real client', function (done) {
|
|
110
122
|
var options = {};
|
|
111
123
|
var rollbar = new Rollbar(options);
|
|
112
124
|
|
|
@@ -121,7 +133,7 @@ describe('Rollbar()', function() {
|
|
|
121
133
|
done();
|
|
122
134
|
});
|
|
123
135
|
|
|
124
|
-
it('should have all of the expected methods', function(done) {
|
|
136
|
+
it('should have all of the expected methods', function (done) {
|
|
125
137
|
var client = new (TestClientGen())();
|
|
126
138
|
var options = {};
|
|
127
139
|
var rollbar = new Rollbar(options, client);
|
|
@@ -137,7 +149,7 @@ describe('Rollbar()', function() {
|
|
|
137
149
|
done();
|
|
138
150
|
});
|
|
139
151
|
|
|
140
|
-
it
|
|
152
|
+
it('should have some default options', function (done) {
|
|
141
153
|
var client = new (TestClientGen())();
|
|
142
154
|
var options = {};
|
|
143
155
|
var rollbar = new Rollbar(options, client);
|
|
@@ -146,12 +158,10 @@ describe('Rollbar()', function() {
|
|
|
146
158
|
done();
|
|
147
159
|
});
|
|
148
160
|
|
|
149
|
-
it
|
|
161
|
+
it('should merge with the defaults options', function (done) {
|
|
150
162
|
var client = new (TestClientGen())();
|
|
151
163
|
var options = {
|
|
152
|
-
scrubFields: [
|
|
153
|
-
'foobar'
|
|
154
|
-
]
|
|
164
|
+
scrubFields: ['foobar'],
|
|
155
165
|
};
|
|
156
166
|
var rollbar = new Rollbar(options, client);
|
|
157
167
|
|
|
@@ -160,12 +170,10 @@ describe('Rollbar()', function() {
|
|
|
160
170
|
done();
|
|
161
171
|
});
|
|
162
172
|
|
|
163
|
-
it
|
|
173
|
+
it('should overwrite default if specified', function (done) {
|
|
164
174
|
var client = new (TestClientGen())();
|
|
165
175
|
var options = {
|
|
166
|
-
scrubFields: [
|
|
167
|
-
'foobar'
|
|
168
|
-
],
|
|
176
|
+
scrubFields: ['foobar'],
|
|
169
177
|
overwriteScrubFields: true,
|
|
170
178
|
};
|
|
171
179
|
var rollbar = new Rollbar(options, client);
|
|
@@ -175,11 +183,11 @@ describe('Rollbar()', function() {
|
|
|
175
183
|
done();
|
|
176
184
|
});
|
|
177
185
|
|
|
178
|
-
it
|
|
186
|
+
it('should replace deprecated options', function (done) {
|
|
179
187
|
var client = new (TestClientGen())();
|
|
180
188
|
var options = {
|
|
181
189
|
hostWhiteList: ['foo'],
|
|
182
|
-
hostBlackList: ['bar']
|
|
190
|
+
hostBlackList: ['bar'],
|
|
183
191
|
};
|
|
184
192
|
var rollbar = new Rollbar(options, client);
|
|
185
193
|
|
|
@@ -190,7 +198,7 @@ describe('Rollbar()', function() {
|
|
|
190
198
|
done();
|
|
191
199
|
});
|
|
192
200
|
|
|
193
|
-
it('should return a uuid when logging', function(done) {
|
|
201
|
+
it('should return a uuid when logging', function (done) {
|
|
194
202
|
var client = new (TestClientGen())();
|
|
195
203
|
var options = {};
|
|
196
204
|
var rollbar = new Rollbar(options, client);
|
|
@@ -201,7 +209,7 @@ describe('Rollbar()', function() {
|
|
|
201
209
|
done();
|
|
202
210
|
});
|
|
203
211
|
|
|
204
|
-
it('should package up the inputs', function(done) {
|
|
212
|
+
it('should package up the inputs', function (done) {
|
|
205
213
|
var client = new (TestClientGen())();
|
|
206
214
|
var options = {};
|
|
207
215
|
var rollbar = new Rollbar(options, client);
|
|
@@ -214,17 +222,17 @@ describe('Rollbar()', function() {
|
|
|
214
222
|
done();
|
|
215
223
|
});
|
|
216
224
|
|
|
217
|
-
it('should call the client with the right method', function(done) {
|
|
225
|
+
it('should call the client with the right method', function (done) {
|
|
218
226
|
var client = new (TestClientGen())();
|
|
219
227
|
var options = {};
|
|
220
228
|
var rollbar = new Rollbar(options, client);
|
|
221
229
|
|
|
222
230
|
var methods = 'log,debug,info,warn,warning,error,critical'.split(',');
|
|
223
|
-
for (var i=0; i < methods.length; i++) {
|
|
231
|
+
for (var i = 0; i < methods.length; i++) {
|
|
224
232
|
var msg = 'message:' + i;
|
|
225
233
|
rollbar[methods[i]](msg);
|
|
226
234
|
expect(client.logCalls[i].func).to.eql(methods[i]);
|
|
227
|
-
expect(client.logCalls[i].item.message).to.eql(msg)
|
|
235
|
+
expect(client.logCalls[i].item.message).to.eql(msg);
|
|
228
236
|
}
|
|
229
237
|
|
|
230
238
|
done();
|
|
@@ -249,64 +257,67 @@ describe('Rollbar()', function() {
|
|
|
249
257
|
});
|
|
250
258
|
});
|
|
251
259
|
|
|
252
|
-
describe('configure', function() {
|
|
253
|
-
it('should configure client', function(done) {
|
|
260
|
+
describe('configure', function () {
|
|
261
|
+
it('should configure client', function (done) {
|
|
254
262
|
var client = new (TestClientGen())();
|
|
255
263
|
var options = {
|
|
256
264
|
payload: {
|
|
257
265
|
a: 42,
|
|
258
|
-
environment: 'testtest'
|
|
259
|
-
}
|
|
266
|
+
environment: 'testtest',
|
|
267
|
+
},
|
|
260
268
|
};
|
|
261
269
|
var rollbar = new Rollbar(options, client);
|
|
262
270
|
expect(rollbar.options.payload.environment).to.eql('testtest');
|
|
263
271
|
|
|
264
|
-
rollbar.configure({payload: {environment: 'borkbork'}});
|
|
272
|
+
rollbar.configure({ payload: { environment: 'borkbork' } });
|
|
265
273
|
expect(rollbar.options.payload.environment).to.eql('borkbork');
|
|
266
274
|
expect(client.options.payload.environment).to.eql('borkbork');
|
|
267
275
|
done();
|
|
268
276
|
});
|
|
269
|
-
it('should accept a second parameter and use it as the payload value', function(done) {
|
|
277
|
+
it('should accept a second parameter and use it as the payload value', function (done) {
|
|
270
278
|
var client = new (TestClientGen())();
|
|
271
279
|
var options = {
|
|
272
280
|
payload: {
|
|
273
281
|
a: 42,
|
|
274
|
-
environment: 'testtest'
|
|
275
|
-
}
|
|
282
|
+
environment: 'testtest',
|
|
283
|
+
},
|
|
276
284
|
};
|
|
277
285
|
var rollbar = new Rollbar(options, client);
|
|
278
286
|
expect(rollbar.options.payload.environment).to.eql('testtest');
|
|
279
287
|
|
|
280
|
-
rollbar.configure({somekey: 'borkbork'}, {b: 97});
|
|
288
|
+
rollbar.configure({ somekey: 'borkbork' }, { b: 97 });
|
|
281
289
|
expect(rollbar.options.somekey).to.eql('borkbork');
|
|
282
290
|
expect(rollbar.options.payload.b).to.eql(97);
|
|
283
291
|
expect(client.payloadData.b).to.eql(97);
|
|
284
292
|
done();
|
|
285
293
|
});
|
|
286
|
-
it('should accept a second parameter and override the payload with it', function(done) {
|
|
294
|
+
it('should accept a second parameter and override the payload with it', function (done) {
|
|
287
295
|
var client = new (TestClientGen())();
|
|
288
296
|
var options = {
|
|
289
297
|
payload: {
|
|
290
298
|
a: 42,
|
|
291
|
-
environment: 'testtest'
|
|
292
|
-
}
|
|
299
|
+
environment: 'testtest',
|
|
300
|
+
},
|
|
293
301
|
};
|
|
294
302
|
var rollbar = new Rollbar(options, client);
|
|
295
303
|
expect(rollbar.options.payload.environment).to.eql('testtest');
|
|
296
304
|
|
|
297
|
-
rollbar.configure({somekey: 'borkbork', payload: {b: 101}}, {b: 97});
|
|
305
|
+
rollbar.configure({ somekey: 'borkbork', payload: { b: 101 } }, { b: 97 });
|
|
298
306
|
expect(rollbar.options.somekey).to.eql('borkbork');
|
|
299
307
|
expect(rollbar.options.payload.b).to.eql(97);
|
|
300
308
|
expect(client.payloadData.b).to.eql(97);
|
|
301
309
|
done();
|
|
302
310
|
});
|
|
303
|
-
it
|
|
311
|
+
it('should replace deprecated options', function (done) {
|
|
304
312
|
var client = new (TestClientGen())();
|
|
305
313
|
var options = {
|
|
306
314
|
hostWhiteList: ['foo'],
|
|
307
|
-
hostBlackList: ['bar']
|
|
315
|
+
hostBlackList: ['bar'],
|
|
308
316
|
};
|
|
309
|
-
var rollbar = window.rollbar = new Rollbar(
|
|
317
|
+
var rollbar = (window.rollbar = new Rollbar(
|
|
318
|
+
{ autoInstrument: false },
|
|
319
|
+
client,
|
|
320
|
+
));
|
|
310
321
|
rollbar.configure(options);
|
|
311
322
|
|
|
312
323
|
expect(rollbar.options.hostWhiteList).to.eql(undefined);
|
|
@@ -315,54 +326,61 @@ describe('configure', function() {
|
|
|
315
326
|
expect(rollbar.options.hostBlockList).to.contain('bar');
|
|
316
327
|
done();
|
|
317
328
|
});
|
|
318
|
-
it('should store configured options', function(done) {
|
|
329
|
+
it('should store configured options', function (done) {
|
|
319
330
|
var client = new (TestClientGen())();
|
|
320
331
|
var options = {
|
|
321
332
|
captureUncaught: true,
|
|
322
333
|
payload: {
|
|
323
334
|
a: 42,
|
|
324
|
-
environment: 'testtest'
|
|
325
|
-
}
|
|
335
|
+
environment: 'testtest',
|
|
336
|
+
},
|
|
326
337
|
};
|
|
327
338
|
var rollbar = new Rollbar(options, client);
|
|
328
|
-
expect(rollbar.options._configuredOptions.payload.environment).to.eql(
|
|
339
|
+
expect(rollbar.options._configuredOptions.payload.environment).to.eql(
|
|
340
|
+
'testtest',
|
|
341
|
+
);
|
|
329
342
|
expect(rollbar.options._configuredOptions.captureUncaught).to.eql(true);
|
|
330
343
|
|
|
331
|
-
rollbar.configure({
|
|
332
|
-
|
|
344
|
+
rollbar.configure({
|
|
345
|
+
captureUncaught: false,
|
|
346
|
+
payload: { environment: 'borkbork' },
|
|
347
|
+
});
|
|
348
|
+
expect(rollbar.options._configuredOptions.payload.environment).to.eql(
|
|
349
|
+
'borkbork',
|
|
350
|
+
);
|
|
333
351
|
expect(rollbar.options._configuredOptions.captureUncaught).to.eql(false);
|
|
334
352
|
done();
|
|
335
353
|
});
|
|
336
354
|
});
|
|
337
355
|
|
|
338
|
-
describe('captureEvent', function() {
|
|
339
|
-
it('should handle missing/default type and level', function(done) {
|
|
356
|
+
describe('captureEvent', function () {
|
|
357
|
+
it('should handle missing/default type and level', function (done) {
|
|
340
358
|
var options = {};
|
|
341
359
|
var rollbar = new Rollbar(options);
|
|
342
360
|
|
|
343
|
-
var event = rollbar.captureEvent({foo: 'bar'});
|
|
361
|
+
var event = rollbar.captureEvent({ foo: 'bar' });
|
|
344
362
|
expect(event.type).to.eql('manual');
|
|
345
363
|
expect(event.level).to.eql('info');
|
|
346
364
|
expect(event.body.foo).to.eql('bar');
|
|
347
365
|
|
|
348
366
|
done();
|
|
349
367
|
});
|
|
350
|
-
it('should handle specified type and level', function(done) {
|
|
368
|
+
it('should handle specified type and level', function (done) {
|
|
351
369
|
var options = {};
|
|
352
370
|
var rollbar = new Rollbar(options);
|
|
353
371
|
|
|
354
|
-
var event = rollbar.captureEvent('log', {foo: 'bar'}, 'debug');
|
|
372
|
+
var event = rollbar.captureEvent('log', { foo: 'bar' }, 'debug');
|
|
355
373
|
expect(event.type).to.eql('log');
|
|
356
374
|
expect(event.level).to.eql('debug');
|
|
357
375
|
expect(event.body.foo).to.eql('bar');
|
|
358
376
|
|
|
359
377
|
done();
|
|
360
378
|
});
|
|
361
|
-
it('should handle extra args', function(done) {
|
|
379
|
+
it('should handle extra args', function (done) {
|
|
362
380
|
var options = {};
|
|
363
381
|
var rollbar = new Rollbar(options);
|
|
364
382
|
|
|
365
|
-
var event = rollbar.captureEvent('meaningless', {foo: 'bar'}, 23);
|
|
383
|
+
var event = rollbar.captureEvent('meaningless', { foo: 'bar' }, 23);
|
|
366
384
|
expect(event.type).to.eql('manual');
|
|
367
385
|
expect(event.level).to.eql('info');
|
|
368
386
|
expect(event.body.foo).to.eql('bar');
|
|
@@ -371,7 +389,7 @@ describe('captureEvent', function() {
|
|
|
371
389
|
});
|
|
372
390
|
});
|
|
373
391
|
|
|
374
|
-
describe('callback options', function() {
|
|
392
|
+
describe('callback options', function () {
|
|
375
393
|
beforeEach(function (done) {
|
|
376
394
|
// In react-native environment, stub fetch() instead of XMLHttpRequest
|
|
377
395
|
window.fetchStub = sinon.stub(window, 'fetch');
|
|
@@ -385,20 +403,32 @@ describe('callback options', function() {
|
|
|
385
403
|
function stubResponse(code, err, message) {
|
|
386
404
|
var uuid = 'd4c7acef55bf4c9ea95e4fe9428a8287';
|
|
387
405
|
|
|
388
|
-
window.fetch.returns(
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
406
|
+
window.fetch.returns(
|
|
407
|
+
Promise.resolve(
|
|
408
|
+
new Response(
|
|
409
|
+
JSON.stringify({
|
|
410
|
+
err: err,
|
|
411
|
+
message: message,
|
|
412
|
+
result: { uuid: uuid },
|
|
413
|
+
}),
|
|
414
|
+
{
|
|
415
|
+
status: code,
|
|
416
|
+
statusText: message,
|
|
417
|
+
headers: { 'Content-Type': 'application/json' },
|
|
418
|
+
},
|
|
419
|
+
),
|
|
420
|
+
),
|
|
421
|
+
);
|
|
392
422
|
}
|
|
393
423
|
|
|
394
|
-
it('should use checkIgnore when set', function(done) {
|
|
424
|
+
it('should use checkIgnore when set', function (done) {
|
|
395
425
|
stubResponse(200, 0, 'OK');
|
|
396
426
|
|
|
397
427
|
var options = {
|
|
398
428
|
accessToken: 'POST_CLIENT_ITEM_TOKEN',
|
|
399
|
-
checkIgnore: function(_isUncaught, _args, _payload) {
|
|
429
|
+
checkIgnore: function (_isUncaught, _args, _payload) {
|
|
400
430
|
return true;
|
|
401
|
-
}
|
|
431
|
+
},
|
|
402
432
|
};
|
|
403
433
|
var rollbar = new Rollbar(options);
|
|
404
434
|
|
|
@@ -409,20 +439,20 @@ describe('callback options', function() {
|
|
|
409
439
|
done();
|
|
410
440
|
});
|
|
411
441
|
|
|
412
|
-
it('should use onSendCallback when set', function(done) {
|
|
442
|
+
it('should use onSendCallback when set', function (done) {
|
|
413
443
|
stubResponse(200, 0, 'OK');
|
|
414
444
|
|
|
415
445
|
var options = {
|
|
416
446
|
accessToken: 'POST_CLIENT_ITEM_TOKEN',
|
|
417
|
-
onSendCallback: function(_isUncaught, _args, payload) {
|
|
447
|
+
onSendCallback: function (_isUncaught, _args, payload) {
|
|
418
448
|
payload.foo = 'bar';
|
|
419
|
-
}
|
|
449
|
+
},
|
|
420
450
|
};
|
|
421
451
|
var rollbar = new Rollbar(options);
|
|
422
452
|
|
|
423
453
|
rollbar.log('test'); // generate a payload to inspect
|
|
424
454
|
|
|
425
|
-
setTimeout(function() {
|
|
455
|
+
setTimeout(function () {
|
|
426
456
|
expect(window.fetchStub.called).to.be.ok();
|
|
427
457
|
var body = JSON.parse(window.fetchStub.getCall(0).args[1].body);
|
|
428
458
|
expect(body.data.foo).to.eql('bar');
|
|
@@ -431,20 +461,20 @@ describe('callback options', function() {
|
|
|
431
461
|
}, 1);
|
|
432
462
|
});
|
|
433
463
|
|
|
434
|
-
it('should use transform when set', function(done) {
|
|
464
|
+
it('should use transform when set', function (done) {
|
|
435
465
|
stubResponse(200, 0, 'OK');
|
|
436
466
|
|
|
437
467
|
var options = {
|
|
438
468
|
accessToken: 'POST_CLIENT_ITEM_TOKEN',
|
|
439
|
-
transform: function(data, _item) {
|
|
469
|
+
transform: function (data, _item) {
|
|
440
470
|
data.foo = 'baz';
|
|
441
|
-
}
|
|
471
|
+
},
|
|
442
472
|
};
|
|
443
473
|
var rollbar = new Rollbar(options);
|
|
444
474
|
|
|
445
475
|
rollbar.log('test'); // generate a payload to inspect
|
|
446
476
|
|
|
447
|
-
setTimeout(function() {
|
|
477
|
+
setTimeout(function () {
|
|
448
478
|
expect(window.fetchStub.called).to.be.ok();
|
|
449
479
|
var body = JSON.parse(window.fetchStub.getCall(0).args[1].body);
|
|
450
480
|
expect(body.data.foo).to.eql('baz');
|
|
@@ -454,8 +484,8 @@ describe('callback options', function() {
|
|
|
454
484
|
});
|
|
455
485
|
});
|
|
456
486
|
|
|
457
|
-
describe('createItem', function() {
|
|
458
|
-
it('should handle multiple strings', function(done) {
|
|
487
|
+
describe('createItem', function () {
|
|
488
|
+
it('should handle multiple strings', function (done) {
|
|
459
489
|
var client = new (TestClientGen())();
|
|
460
490
|
var options = {};
|
|
461
491
|
var rollbar = new Rollbar(options, client);
|
|
@@ -467,7 +497,7 @@ describe('createItem', function() {
|
|
|
467
497
|
|
|
468
498
|
done();
|
|
469
499
|
});
|
|
470
|
-
it('should handle errors', function(done) {
|
|
500
|
+
it('should handle errors', function (done) {
|
|
471
501
|
var client = new (TestClientGen())();
|
|
472
502
|
var options = {};
|
|
473
503
|
var rollbar = new Rollbar(options, client);
|
|
@@ -480,13 +510,13 @@ describe('createItem', function() {
|
|
|
480
510
|
|
|
481
511
|
done();
|
|
482
512
|
});
|
|
483
|
-
it('should handle a callback', function(done) {
|
|
513
|
+
it('should handle a callback', function (done) {
|
|
484
514
|
var client = new (TestClientGen())();
|
|
485
515
|
var options = {};
|
|
486
516
|
var rollbar = new Rollbar(options, client);
|
|
487
517
|
|
|
488
518
|
var myCallbackCalled = false;
|
|
489
|
-
var myCallback = function() {
|
|
519
|
+
var myCallback = function () {
|
|
490
520
|
myCallbackCalled = true;
|
|
491
521
|
};
|
|
492
522
|
var args = [new Error('Whoa'), 'first', myCallback, 'second'];
|
|
@@ -500,7 +530,7 @@ describe('createItem', function() {
|
|
|
500
530
|
|
|
501
531
|
done();
|
|
502
532
|
});
|
|
503
|
-
it('should handle arrays', function(done) {
|
|
533
|
+
it('should handle arrays', function (done) {
|
|
504
534
|
var client = new (TestClientGen())();
|
|
505
535
|
var options = {};
|
|
506
536
|
var rollbar = new Rollbar(options, client);
|
|
@@ -514,12 +544,12 @@ describe('createItem', function() {
|
|
|
514
544
|
|
|
515
545
|
done();
|
|
516
546
|
});
|
|
517
|
-
it('should handle objects', function(done) {
|
|
547
|
+
it('should handle objects', function (done) {
|
|
518
548
|
var client = new (TestClientGen())();
|
|
519
549
|
var options = {};
|
|
520
550
|
var rollbar = new Rollbar(options, client);
|
|
521
551
|
|
|
522
|
-
var args = [new Error('Whoa'), 'first', {a: 1, b: 2}, 'second'];
|
|
552
|
+
var args = [new Error('Whoa'), 'first', { a: 1, b: 2 }, 'second'];
|
|
523
553
|
var item = rollbar._createItem(args);
|
|
524
554
|
expect(item.err).to.eql(args[0]);
|
|
525
555
|
expect(item.message).to.eql('first');
|
|
@@ -529,24 +559,24 @@ describe('createItem', function() {
|
|
|
529
559
|
|
|
530
560
|
done();
|
|
531
561
|
});
|
|
532
|
-
it('should have a timestamp', function(done) {
|
|
562
|
+
it('should have a timestamp', function (done) {
|
|
533
563
|
var client = new (TestClientGen())();
|
|
534
564
|
var options = {};
|
|
535
565
|
var rollbar = new Rollbar(options, client);
|
|
536
566
|
|
|
537
|
-
var args = [new Error('Whoa'), 'first', {a: 1, b: 2}, 'second'];
|
|
567
|
+
var args = [new Error('Whoa'), 'first', { a: 1, b: 2 }, 'second'];
|
|
538
568
|
var item = rollbar._createItem(args);
|
|
539
|
-
var now =
|
|
569
|
+
var now = new Date().getTime();
|
|
540
570
|
expect(item.timestamp).to.be.within(now - 1000, now + 1000);
|
|
541
571
|
|
|
542
572
|
done();
|
|
543
573
|
});
|
|
544
|
-
it('should have an uuid', function(done) {
|
|
574
|
+
it('should have an uuid', function (done) {
|
|
545
575
|
var client = new (TestClientGen())();
|
|
546
576
|
var options = {};
|
|
547
577
|
var rollbar = new Rollbar(options, client);
|
|
548
578
|
|
|
549
|
-
var args = [new Error('Whoa'), 'first', {a: 1, b: 2}, 'second'];
|
|
579
|
+
var args = [new Error('Whoa'), 'first', { a: 1, b: 2 }, 'second'];
|
|
550
580
|
var item = rollbar._createItem(args);
|
|
551
581
|
expect(item.uuid).to.be.ok();
|
|
552
582
|
|
|
@@ -557,38 +587,42 @@ describe('createItem', function() {
|
|
|
557
587
|
|
|
558
588
|
done();
|
|
559
589
|
});
|
|
560
|
-
it('should handle dates', function(done) {
|
|
590
|
+
it('should handle dates', function (done) {
|
|
561
591
|
var client = new (TestClientGen())();
|
|
562
592
|
var options = {};
|
|
563
593
|
var rollbar = new Rollbar(options, client);
|
|
564
594
|
|
|
565
|
-
var y2k = new Date(2000, 0, 1)
|
|
566
|
-
var args = [new Error('Whoa'), 'first', y2k, {a: 1, b: 2}, 'second'];
|
|
595
|
+
var y2k = new Date(2000, 0, 1);
|
|
596
|
+
var args = [new Error('Whoa'), 'first', y2k, { a: 1, b: 2 }, 'second'];
|
|
567
597
|
var item = rollbar._createItem(args);
|
|
568
598
|
expect(item.custom.extraArgs).to.eql([y2k, 'second']);
|
|
569
599
|
|
|
570
600
|
done();
|
|
571
601
|
});
|
|
572
|
-
it('should handle numbers', function(done) {
|
|
602
|
+
it('should handle numbers', function (done) {
|
|
573
603
|
var client = new (TestClientGen())();
|
|
574
604
|
var options = {};
|
|
575
605
|
var rollbar = new Rollbar(options, client);
|
|
576
606
|
|
|
577
|
-
var args = [new Error('Whoa'), 'first', 42, {a: 1, b: 2}, 'second'];
|
|
607
|
+
var args = [new Error('Whoa'), 'first', 42, { a: 1, b: 2 }, 'second'];
|
|
578
608
|
var item = rollbar._createItem(args);
|
|
579
609
|
expect(item.custom.extraArgs).to.eql([42, 'second']);
|
|
580
610
|
|
|
581
611
|
done();
|
|
582
612
|
});
|
|
583
|
-
it('should handle domexceptions', function(done) {
|
|
613
|
+
it('should handle domexceptions', function (done) {
|
|
584
614
|
var client = new (TestClientGen())();
|
|
585
615
|
var options = {};
|
|
586
616
|
var rollbar = new Rollbar(options, client);
|
|
587
617
|
|
|
588
618
|
if (document && document.querySelectorAll) {
|
|
589
619
|
var e;
|
|
590
|
-
try {
|
|
591
|
-
|
|
620
|
+
try {
|
|
621
|
+
document.querySelectorAll('div:foo');
|
|
622
|
+
} catch (ee) {
|
|
623
|
+
e = ee;
|
|
624
|
+
}
|
|
625
|
+
var args = [e, 'first', 42, { a: 1, b: 2 }, 'second'];
|
|
592
626
|
var item = rollbar._createItem(args);
|
|
593
627
|
expect(item.err).to.be.ok();
|
|
594
628
|
}
|
|
@@ -597,8 +631,8 @@ describe('createItem', function() {
|
|
|
597
631
|
});
|
|
598
632
|
});
|
|
599
633
|
|
|
600
|
-
describe('singleton', function() {
|
|
601
|
-
it('should pass through the underlying client after init', function(done) {
|
|
634
|
+
describe('singleton', function () {
|
|
635
|
+
it('should pass through the underlying client after init', function (done) {
|
|
602
636
|
var client = new (TestClientGen())();
|
|
603
637
|
var options = {};
|
|
604
638
|
var rollbar = Rollbar.init(options, client);
|