diff --git a/index.js b/index.js index 347484080..8bc39545c 100755 --- a/index.js +++ b/index.js @@ -75,7 +75,7 @@ request.cookie = function (str) { return cookies.parse(str) } -function wrapRequestMethod (method, options, requester) { +function wrapRequestMethod (method, options, requester, verb) { return function (uri, opts, callback) { var params = initParams(uri, opts, callback) @@ -89,9 +89,8 @@ function wrapRequestMethod (method, options, requester) { params.headers = extend(headers, params.headers) } - if (typeof method === 'string') { - params.method = (method === 'del' ? 'DELETE' : method.toUpperCase()) - method = request[method] + if (verb) { + params.method = (verb === 'del' ? 'DELETE' : verb.toUpperCase()) } if (isFunction(requester)) { @@ -114,7 +113,7 @@ request.defaults = function (options, requester) { var verbs = ['get', 'head', 'post', 'put', 'patch', 'del'] verbs.forEach(function(verb) { - defaults[verb] = wrapRequestMethod(verb, options, requester) + defaults[verb] = wrapRequestMethod(self[verb], options, requester, verb) }) defaults.cookie = wrapRequestMethod(self.cookie, options, requester) diff --git a/tests/test-defaults.js b/tests/test-defaults.js index e980aacfe..50cf213c3 100644 --- a/tests/test-defaults.js +++ b/tests/test-defaults.js @@ -208,7 +208,7 @@ tape('head(object, function)', function(t) { }) tape('recursive defaults', function(t) { - t.plan(6) + t.plan(8) var defaultsOne = request.defaults({ headers: { foo: 'bar1' } }) , defaultsTwo = defaultsOne.defaults({ headers: { baz: 'bar2' } }) @@ -234,6 +234,11 @@ tape('recursive defaults', function(t) { t.equal(e, null) t.equal(b, 'TESTING!') }) + + defaultsTwo.get(s.url + '/get_recursive2', function (e, r, b) { + t.equal(e, null) + t.equal(b, 'TESTING!') + }) }) tape('recursive defaults requester', function(t) {