Skip to content

Commit

Permalink
Merge pull request #1518 from simov/fix-defaults
Browse files Browse the repository at this point in the history
Fix defaults
  • Loading branch information
simov committed Mar 30, 2015
2 parents 0ff7fc3 + aa4fd5e commit 2284e7d
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 7 deletions.
23 changes: 16 additions & 7 deletions index.js
Expand Up @@ -99,6 +99,15 @@ request.defaults = function (options, requester) {
var params = initParams(uri, opts, callback)
params.options = extend(headerlessOptions(options), params.options)

if (typeof method === 'string') {
params.options.method = (method === 'del' ? 'DELETE' : method.toUpperCase())
method = request[method]
}

if (params.options.method === 'HEAD' && paramsHaveRequestBody(params)) {
throw new Error('HTTP HEAD requests MUST NOT include a request body.')
}

if (options.headers) {
params.options.headers = getHeaders(params, options)
}
Expand All @@ -112,13 +121,13 @@ request.defaults = function (options, requester) {
}

var defaults = wrap(self)
defaults.get = self.get
defaults.patch = self.patch
defaults.post = self.post
defaults.put = self.put
defaults.head = self.head
defaults.del = self.del
defaults.cookie = self.cookie
defaults.get = wrap('get')
defaults.patch = wrap('patch')
defaults.post = wrap('post')
defaults.put = wrap('put')
defaults.head = wrap('head')
defaults.del = wrap('del')
defaults.cookie = wrap(self.cookie)
defaults.jar = self.jar
defaults.defaults = self.defaults
return defaults
Expand Down
24 changes: 24 additions & 0 deletions tests/test-defaults.js
Expand Up @@ -314,6 +314,30 @@ tape('test only function', function(t) {
})
})

tape('invoke defaults', function(t) {
var d = request.defaults({
uri: s.url + '/get',
headers: { foo: 'bar' }
})
d({}, function (e, r, b) {
t.equal(e, null)
t.equal(b, 'TESTING!')
t.end()
})
})

tape('invoke convenience method from defaults', function(t) {
var d = request.defaults({
uri: s.url + '/get',
headers: { foo: 'bar' }
})
d.get({}, function (e, r, b) {
t.equal(e, null)
t.equal(b, 'TESTING!')
t.end()
})
})

tape('cleanup', function(t) {
s.close(function() {
t.end()
Expand Down

0 comments on commit 2284e7d

Please sign in to comment.