From e8eb1e3edb1b20ac760a6d0b037b7b812d3202a5 Mon Sep 17 00:00:00 2001 From: Mordy Tikotzky Date: Tue, 17 Feb 2015 15:10:56 -0500 Subject: [PATCH] Add ability to set a requester without setting default options --- index.js | 6 ++++++ tests/test-defaults.js | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/index.js b/index.js index 48ddb9170..6da328048 100755 --- a/index.js +++ b/index.js @@ -99,6 +99,12 @@ request.cookie = function (str) { } request.defaults = function (options, requester) { + + if (typeof options === 'function') { + requester = options + options = {} + } + var self = this var wrap = function (method) { var headerlessOptions = function (options) { diff --git a/tests/test-defaults.js b/tests/test-defaults.js index c4d4d66ac..09131a172 100644 --- a/tests/test-defaults.js +++ b/tests/test-defaults.js @@ -266,6 +266,23 @@ tape('test custom request handler function', function(t) { }) }) +tape('test custom request handler function without options', function(t) { + t.plan(1) + + var customHandlerWithoutOptions = request.defaults(function(uri, options, callback) { + var params = request.initParams(uri, options, callback) + var headers = params.options.headers || {} + headers.x = 'y' + headers.foo = 'bar' + params.options.headers = headers + return request(params.uri, params.options, params.callback) + }) + + customHandlerWithoutOptions.get(s.url + '/get_custom', function(e, r, b) { + t.equal(e, null) + }) +}) + tape('test only setting undefined properties', function(t) { request.defaults({ method: 'post',