rollbar
Version:
Effortlessly track and debug errors in your JavaScript applications with Rollbar. This package includes advanced error tracking features and an intuitive interface to help you identify and fix issues more quickly.
77 lines (67 loc) • 1.88 kB
JavaScript
/* globals expect */
/* globals describe */
/* globals it */
/* globals sinon */
var truncation = require('../src/truncation');
var Transport = require('../src/react-native/transport');
var t = new Transport(truncation);
var utility = require('../src/utility');
utility.setupJSON();
describe('post', function () {
var accessToken = 'abc123';
var options = {
hostname: 'api.rollbar.com',
protocol: 'https',
path: '/api/1/item/',
};
var payload = {
access_token: accessToken,
data: { a: 1 },
};
var uuid = 'd4c7acef55bf4c9ea95e4fe9428a8287';
before(function (done) {
// In react-native environment, stub fetch() instead of XMLHttpRequest
sinon.stub(window, 'fetch');
done();
});
after(function () {
window.fetch.restore();
});
function stubResponse(code, err, message) {
window.fetch.returns(
Promise.resolve(
new Response(
JSON.stringify({
err: err,
message: message,
result: { uuid: uuid },
}),
{
status: code,
statusText: message,
headers: { 'Content-Type': 'application/json' },
},
),
),
);
}
it('should callback with the right value on success', function (done) {
stubResponse(200, 0, 'OK');
var callback = function (err, data) {
expect(err).to.eql(null);
expect(data).to.be.ok();
expect(data.uuid).to.eql(uuid);
done();
};
t.post(accessToken, options, payload, callback);
});
it('should callback with the server error if 403', function (done) {
stubResponse(403, '403', 'bad request');
var callback = function (err, resp) {
expect(resp).to.not.be.ok();
expect(err.message).to.eql('Api error: bad request');
done();
};
t.post(accessToken, options, payload, callback);
});
});