Skip to content

Commit 7e2bcc7

Browse files
committed
add tests to cover error cases for dsUtils.makeRequest
1 parent b57b066 commit 7e2bcc7

File tree

3 files changed

+54
-3
lines changed

3 files changed

+54
-3
lines changed

dsUtils.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@ exports.makeRequest = function (apiName, options, callback) {
112112
exports.log(util.format('DS API %s Request:\n %s %s\t %s\nHeaders: %s', apiName, options.method, options.url, util.inspect(data, {depth: null}), util.inspect(options.headers, {depth: null})));
113113

114114
request(options, function (error, response, body) {
115-
/* istanbul ignore if */
116115
if (error) {
117116
return reject(error);
118117
}
@@ -145,9 +144,7 @@ exports.makeRequest = function (apiName, options, callback) {
145144
});
146145
});
147146
return makeRequestAsync.asCallback(callback).catch(DocuSignError, function (error) {
148-
/* istanbul ignore next */
149147
exports.log(error.message);
150-
/* istanbul ignore next */
151148
throw error;
152149
});
153150
};

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
"proxyquire": "1.7.3",
7070
"require-uncached": "1.0.2",
7171
"semistandard": "7.0.2",
72+
"sinon": "1.17.1",
7273
"write-json-file": "1.1.1"
7374
},
7475
"pre-commit": [

test/dsUtils.spec.js

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
'use strict';
2+
3+
const test = require('ava');
4+
const proxyquire = require('proxyquire');
5+
const sinon = require('sinon');
6+
7+
let dsUtils;
8+
9+
test('[makeRequest] error', t => {
10+
let error = new Error('broken');
11+
dsUtils = proxyquire('../dsUtils', {
12+
request: sinon.stub().callsArgWith(1, error)
13+
});
14+
return dsUtils.makeRequest('broken', {})
15+
.catch(err => {
16+
t.ok(err);
17+
t.same(err, error);
18+
});
19+
});
20+
21+
test('[makeRequest] errorCode in body', t => {
22+
let error = null;
23+
let body = {
24+
errorCode: 'Something broke',
25+
message: 'Who knows why'
26+
};
27+
let resp = { body };
28+
dsUtils = proxyquire('../dsUtils', {
29+
request: sinon.stub().callsArgWith(1, error, resp, body)
30+
});
31+
return dsUtils.makeRequest('broken', {})
32+
.catch(err => {
33+
t.ok(err);
34+
t.ok(err.name === 'DocuSignError');
35+
});
36+
});
37+
38+
test('[makeRequest] error in body', t => {
39+
let error = null;
40+
let body = {
41+
error: 'Something broke',
42+
error_description: 'Who knows why'
43+
};
44+
let resp = { body };
45+
dsUtils = proxyquire('../dsUtils', {
46+
request: sinon.stub().callsArgWith(1, error, resp, body)
47+
});
48+
return dsUtils.makeRequest('broken', {})
49+
.catch(err => {
50+
t.ok(err);
51+
t.ok(err.name === 'DocuSignError');
52+
});
53+
});

0 commit comments

Comments
 (0)