Fixed issue where an empty payload was changed to an empty object.

This commit is contained in:
David Diaz 2018-03-01 10:58:30 -06:00
parent e140778393
commit 124d55d1ae
4 changed files with 41 additions and 15 deletions

View File

@ -24,9 +24,9 @@ exports[`Request should execute a request 2`] = `
Object { Object {
"body": "{\\"hello\\": \\"world\\"}", "body": "{\\"hello\\": \\"world\\"}",
"request": Object { "request": Object {
"body": Object {}, "body": undefined,
"endpoint": "http://martianwabbit.com/user", "endpoint": "http://martianwabbit.com/user",
"headers": Object {}, "headers": undefined,
}, },
"response": Object { "response": Object {
"body": "{\\"hello\\": \\"world\\"}", "body": "{\\"hello\\": \\"world\\"}",

View File

@ -10,7 +10,7 @@ Object {
"name": "Sergio", "name": "Sergio",
}, },
"endpoint": "http://martianwabbit.com/user", "endpoint": "http://martianwabbit.com/user",
"headers": Object {}, "headers": undefined,
}, },
"response": Object { "response": Object {
"body": "{\\"hello\\": \\"world\\"}", "body": "{\\"hello\\": \\"world\\"}",

View File

@ -3,7 +3,8 @@ const {
httpVerbs, httpVerbs,
requestRegex, requestRegex,
replacementRegex, replacementRegex,
UpperCaseKeys UpperCaseKeys,
removeOptionalKeys
} = require('./shared'); } = require('./shared');
const RequestList = require('./requestList'); const RequestList = require('./requestList');
const RequestCache = require('./requestCache'); const RequestCache = require('./requestCache');
@ -81,9 +82,12 @@ class Request {
}); });
try { try {
const response = await request({ const response = await request(
removeOptionalKeys(
{
url: settings.endpoint, url: settings.endpoint,
method: settings.method, method: settings.method,
headers: settings.headers, headers: settings.headers,
qs: settings.query, qs: settings.query,
body: settings.payload, body: settings.payload,
@ -91,7 +95,10 @@ class Request {
json: true, json: true,
simple: false, simple: false,
resolveWithFullResponse: true resolveWithFullResponse: true
}); },
['headers', 'qs', 'body']
)
);
const results = { const results = {
request: { request: {

View File

@ -19,9 +19,28 @@ const UpperCaseKeys = function(obj) {
return result; return result;
}; };
const removeOptionalKeys = function(obj, optionalValues) {
let result = {};
Object.keys(obj).forEach(key => {
if (
optionalValues.includes(key) &&
(Object.keys(obj[key]).length === 0 &&
obj[key].constructor === Object)
) {
return;
}
result[key] = obj[key];
});
return result;
};
module.exports = { module.exports = {
httpVerbs, httpVerbs,
requestRegex, requestRegex,
replacementRegex, replacementRegex,
UpperCaseKeys UpperCaseKeys,
removeOptionalKeys
}; };