Skip to content

Commit

Permalink
Merge pull request #736 from rollbar/wj-transmit-flag
Browse files Browse the repository at this point in the history
Add transmit option flag
  • Loading branch information
waltjones authored Jul 2, 2019
2 parents 3b474e9 + a41ac93 commit 9fcca5c
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 19 deletions.
1 change: 1 addition & 0 deletions src/browser/rollbar.js
Original file line number Diff line number Diff line change
Expand Up @@ -458,6 +458,7 @@ var defaultOptions = {
endpoint: __DEFAULT_ENDPOINT__,
verbose: false,
enabled: true,
transmit: true,
sendConfig: false,
includeItemsInTelemetry: true,
captureIp: true
Expand Down
4 changes: 4 additions & 0 deletions src/queue.js
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,10 @@ Queue.prototype.addItem = function(item, callback, originalError, originalItem)
}
this._maybeLog(item, originalError);
this.removePendingItem(originalItem);
if (!this.options.transmit) {
callback(new Error('Transmit disabled'));
return;
}
this.pendingRequests.push(item);
try {
this._makeApiRequest(item, function(err, resp) {
Expand Down
1 change: 1 addition & 0 deletions src/react-native/rollbar.js
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,7 @@ Rollbar.defaultOptions = {
reportLevel: packageJson.defaults.reportLevel,
verbose: false,
enabled: true,
transmit: true,
sendConfig: false,
includeItemsInTelemetry: true
};
Expand Down
1 change: 1 addition & 0 deletions src/server/rollbar.js
Original file line number Diff line number Diff line change
Expand Up @@ -615,6 +615,7 @@ Rollbar.defaultOptions = {
reportLevel: packageJson.defaults.reportLevel,
verbose: false,
enabled: true,
transmit: true,
sendConfig: false,
includeItemsInTelemetry: false,
captureEmail: false,
Expand Down
56 changes: 37 additions & 19 deletions test/queue.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ describe('addItem', function() {
var rateLimiter = new (TestRateLimiterGenerator())();
var api = new (TestApiGenerator())();
var logger = new (TestLoggerGenerator())();
var options = {};
var options = {transmit: true};
var queue = new Queue(rateLimiter, api, logger, options);

var item = {mykey: 'myvalue'};
Expand All @@ -127,7 +127,7 @@ describe('addItem', function() {
var rateLimiter = new (TestRateLimiterGenerator())();
var api = new (TestApiGenerator())();
var logger = new (TestLoggerGenerator())();
var options = {};
var options = {transmit: true};
var queue = new Queue(rateLimiter, api, logger, options);

var item = {mykey: 'myvalue'};
Expand All @@ -148,7 +148,7 @@ describe('addItem', function() {
var rateLimiter = new (TestRateLimiterGenerator())();
var api = new (TestApiGenerator())();
var logger = new (TestLoggerGenerator())();
var options = {};
var options = {transmit: true};
var queue = new Queue(rateLimiter, api, logger, options);

var item = {mykey: 'myvalue'};
Expand All @@ -171,7 +171,7 @@ describe('addItem', function() {
var rateLimiter = new (TestRateLimiterGenerator())();
var api = new (TestApiGenerator())();
var logger = new (TestLoggerGenerator())();
var options = {verbose: true};
var options = {verbose: true, transmit: true};
var queue = new Queue(rateLimiter, api, logger, options);

var item = {body: {trace: {exception: {message: 'hello'}}}};
Expand All @@ -195,7 +195,7 @@ describe('addItem', function() {
var rateLimiter = new (TestRateLimiterGenerator())();
var api = new (TestApiGenerator())();
var logger = new (TestLoggerGenerator())();
var options = {verbose: true};
var options = {verbose: true, transmit: true};
var queue = new Queue(rateLimiter, api, logger, options);

var item = {body: {message: {body: 'hello'}}};
Expand All @@ -219,7 +219,7 @@ describe('addItem', function() {
var rateLimiter = new (TestRateLimiterGenerator())();
var api = new (TestApiGenerator())();
var logger = new (TestLoggerGenerator())();
var options = {verbose: false};
var options = {verbose: false, transmit: true};
var queue = new Queue(rateLimiter, api, logger, options);

var item = {body: {message: {body: 'hello'}}};
Expand All @@ -243,7 +243,7 @@ describe('addItem', function() {
var rateLimiter = new (TestRateLimiterGenerator())();
var api = new (TestApiGenerator())();
var logger = new (TestLoggerGenerator())();
var options = {};
var options = {transmit: true};
var queue = new Queue(rateLimiter, api, logger, options);

var item = {mykey: 'myvalue'};
Expand All @@ -269,7 +269,7 @@ describe('addItem', function() {
var rateLimiter = new (TestRateLimiterGenerator())();
var api = new (TestApiGenerator())();
var logger = new (TestLoggerGenerator())();
var options = {};
var options = {transmit: true};
var queue = new Queue(rateLimiter, api, logger, options);

var item = {mykey: 'myvalue'};
Expand Down Expand Up @@ -297,7 +297,7 @@ describe('addItem', function() {
var rateLimiter = new (TestRateLimiterGenerator())();
var api = new (TestApiGenerator())();
var logger = new (TestLoggerGenerator())();
var options = {};
var options = {transmit: true};
var queue = new Queue(rateLimiter, api, logger, options);

var item = {mykey: 'myvalue'};
Expand Down Expand Up @@ -329,7 +329,7 @@ describe('addItem', function() {
var rateLimiter = new (TestRateLimiterGenerator())();
var api = new (TestApiGenerator())();
var logger = new (TestLoggerGenerator())();
var options = {};
var options = {transmit: true};
var queue = new Queue(rateLimiter, api, logger, options);

var item = {mykey: 'myvalue'};
Expand All @@ -354,7 +354,7 @@ describe('addItem', function() {
var rateLimiter = new (TestRateLimiterGenerator())();
var api = new (TestApiGenerator())();
var logger = new (TestLoggerGenerator())();
var options = {};
var options = {transmit: true};
var queue = new Queue(rateLimiter, api, logger, options);

var item = {mykey: 'myvalue'};
Expand All @@ -376,7 +376,7 @@ describe('addItem', function() {
var rateLimiter = new (TestRateLimiterGenerator())();
var api = new (TestApiGenerator())();
var logger = new (TestLoggerGenerator())();
var options = {};
var options = {transmit: true};
var queue = new Queue(rateLimiter, api, logger, options);

var item = {mykey: 'myvalue'};
Expand Down Expand Up @@ -406,7 +406,7 @@ describe('addItem', function() {
var rateLimiter = new (TestRateLimiterGenerator())();
var api = new (TestApiGenerator())();
var logger = new (TestLoggerGenerator())();
var options = {};
var options = {transmit: true};
var queue = new Queue(rateLimiter, api, logger, options);

var item = {mykey: 'myvalue'};
Expand Down Expand Up @@ -434,7 +434,7 @@ describe('addItem', function() {
var rateLimiter = new (TestRateLimiterGenerator())();
var api = new (TestApiGenerator())();
var logger = new (TestLoggerGenerator())();
var options = {retryInterval: 1};
var options = {retryInterval: 1, transmit: true};
var queue = new Queue(rateLimiter, api, logger, options);

var item = {mykey: 'myvalue'};
Expand All @@ -456,7 +456,7 @@ describe('addItem', function() {
var rateLimiter = new (TestRateLimiterGenerator())();
var api = new (TestApiGenerator())();
var logger = new (TestLoggerGenerator())();
var options = {};
var options = {transmit: true};
var queue = new Queue(rateLimiter, api, logger, options);

var item = {mykey: 'myvalue'};
Expand All @@ -478,7 +478,7 @@ describe('addItem', function() {
var rateLimiter = new (TestRateLimiterGenerator())();
var api = new (TestApiGenerator())();
var logger = new (TestLoggerGenerator())();
var options = {retryInterval: 1};
var options = {retryInterval: 1, transmit: true};
var queue = new Queue(rateLimiter, api, logger, options);

var item = {mykey: 'myvalue'};
Expand All @@ -505,13 +505,32 @@ describe('addItem', function() {
});
});
});
describe('transmit disabled', function() {
it('should not attempt to send', function(done) {
var rateLimiter = new (TestRateLimiterGenerator())();
var api = new (TestApiGenerator())();
var logger = new (TestLoggerGenerator())();
var options = {transmit: false};
var queue = new Queue(rateLimiter, api, logger, options);
var makeApiRequestStub = sinon.stub(queue, '_makeApiRequest');

queue.addItem({mykey: 'myvalue'}, function(err) {
expect(err.message).to.eql('Transmit disabled');
});

expect(makeApiRequestStub.called).to.eql(0);

queue._makeApiRequest.restore();
done();
});
});
});
describe('rate limited', function() {
it('should callback if the rate limiter says not to send and has an error', function(done) {
var rateLimiter = new (TestRateLimiterGenerator())();
var api = new (TestApiGenerator())();
var logger = new (TestLoggerGenerator())();
var options = {};
var options = {transmit: true};
var queue = new Queue(rateLimiter, api, logger, options);

var item = {mykey: 'myvalue'};
Expand Down Expand Up @@ -539,7 +558,7 @@ describe('addItem', function() {
var rateLimiter = new (TestRateLimiterGenerator())();
var api = new (TestApiGenerator())();
var logger = new (TestLoggerGenerator())();
var options = {};
var options = {transmit: true};
var queue = new Queue(rateLimiter, api, logger, options);

var item = {mykey: 'myvalue'};
Expand Down Expand Up @@ -567,4 +586,3 @@ describe('addItem', function() {
});
});
});

0 comments on commit 9fcca5c

Please sign in to comment.