@wiajs/request 3.0.1 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/package.json +2 -2
  2. package/.github/ISSUE_TEMPLATE.md +0 -56
  3. package/.github/PULL_REQUEST_TEMPLATE.md +0 -13
  4. package/.github/stale.yml +0 -19
  5. package/.swcrc +0 -57
  6. package/.travis.yml +0 -21
  7. package/CONTRIBUTING.md +0 -81
  8. package/biome.json +0 -44
  9. package/codecov.yml +0 -2
  10. package/disabled.appveyor.yml +0 -36
  11. package/examples/README.md +0 -135
  12. package/gulpfile.js +0 -71
  13. package/release.sh +0 -45
  14. package/tests/browser/karma.conf.js +0 -57
  15. package/tests/browser/ssl/ca.crt +0 -14
  16. package/tests/browser/ssl/server.crt +0 -14
  17. package/tests/browser/ssl/server.key +0 -15
  18. package/tests/browser/start.js +0 -37
  19. package/tests/browser/test.js +0 -34
  20. package/tests/fixtures/har.json +0 -158
  21. package/tests/googledoodle.jpg +0 -0
  22. package/tests/server.js +0 -142
  23. package/tests/squid.conf +0 -76
  24. package/tests/ssl/ca/README.md +0 -8
  25. package/tests/ssl/ca/ca.cnf +0 -20
  26. package/tests/ssl/ca/ca.crl +0 -0
  27. package/tests/ssl/ca/ca.crt +0 -17
  28. package/tests/ssl/ca/ca.csr +0 -13
  29. package/tests/ssl/ca/ca.key +0 -18
  30. package/tests/ssl/ca/ca.srl +0 -1
  31. package/tests/ssl/ca/client-enc.key +0 -30
  32. package/tests/ssl/ca/client.cnf +0 -20
  33. package/tests/ssl/ca/client.crt +0 -20
  34. package/tests/ssl/ca/client.csr +0 -18
  35. package/tests/ssl/ca/client.key +0 -27
  36. package/tests/ssl/ca/gen-all-certs.sh +0 -6
  37. package/tests/ssl/ca/gen-client.sh +0 -25
  38. package/tests/ssl/ca/gen-localhost.sh +0 -22
  39. package/tests/ssl/ca/gen-server.sh +0 -18
  40. package/tests/ssl/ca/localhost.cnf +0 -20
  41. package/tests/ssl/ca/localhost.crt +0 -20
  42. package/tests/ssl/ca/localhost.csr +0 -18
  43. package/tests/ssl/ca/localhost.js +0 -33
  44. package/tests/ssl/ca/localhost.key +0 -27
  45. package/tests/ssl/ca/server.cnf +0 -19
  46. package/tests/ssl/ca/server.crt +0 -25
  47. package/tests/ssl/ca/server.csr +0 -29
  48. package/tests/ssl/ca/server.js +0 -34
  49. package/tests/ssl/ca/server.key +0 -51
  50. package/tests/ssl/npm-ca.crt +0 -16
  51. package/tests/ssl/test.crt +0 -15
  52. package/tests/ssl/test.key +0 -15
  53. package/tests/test-agent.js +0 -102
  54. package/tests/test-agentOptions.js +0 -51
  55. package/tests/test-api.js +0 -33
  56. package/tests/test-aws.js +0 -123
  57. package/tests/test-baseUrl.js +0 -133
  58. package/tests/test-basic-auth.js +0 -221
  59. package/tests/test-bearer-auth.js +0 -187
  60. package/tests/test-body.js +0 -154
  61. package/tests/test-cookies.js +0 -130
  62. package/tests/test-defaults.js +0 -340
  63. package/tests/test-digest-auth.js +0 -232
  64. package/tests/test-emptyBody.js +0 -56
  65. package/tests/test-errors.js +0 -108
  66. package/tests/test-event-forwarding.js +0 -39
  67. package/tests/test-follow-all-303.js +0 -45
  68. package/tests/test-follow-all.js +0 -57
  69. package/tests/test-form-data-error.js +0 -85
  70. package/tests/test-form-data.js +0 -133
  71. package/tests/test-form-urlencoded.js +0 -73
  72. package/tests/test-form.js +0 -101
  73. package/tests/test-gzip.js +0 -296
  74. package/tests/test-har.js +0 -175
  75. package/tests/test-hawk.js +0 -187
  76. package/tests/test-headers.js +0 -305
  77. package/tests/test-http-signature.js +0 -110
  78. package/tests/test-httpModule.js +0 -112
  79. package/tests/test-https.js +0 -116
  80. package/tests/test-isUrl.js +0 -120
  81. package/tests/test-json-request.js +0 -117
  82. package/tests/test-localAddress.js +0 -49
  83. package/tests/test-multipart-encoding.js +0 -147
  84. package/tests/test-multipart.js +0 -129
  85. package/tests/test-node-debug.js +0 -95
  86. package/tests/test-oauth.js +0 -721
  87. package/tests/test-onelineproxy.js +0 -61
  88. package/tests/test-option-reuse.js +0 -54
  89. package/tests/test-options-convenience-method.js +0 -52
  90. package/tests/test-params.js +0 -101
  91. package/tests/test-piped-redirect.js +0 -55
  92. package/tests/test-pipes.js +0 -383
  93. package/tests/test-pool.js +0 -148
  94. package/tests/test-promise.js +0 -53
  95. package/tests/test-proxy-connect.js +0 -80
  96. package/tests/test-proxy.js +0 -304
  97. package/tests/test-qs.js +0 -135
  98. package/tests/test-redirect-auth.js +0 -131
  99. package/tests/test-redirect-complex.js +0 -93
  100. package/tests/test-redirect.js +0 -449
  101. package/tests/test-rfc3986.js +0 -106
  102. package/tests/test-stream.js +0 -36
  103. package/tests/test-timeout.js +0 -260
  104. package/tests/test-timing.js +0 -147
  105. package/tests/test-toJSON.js +0 -45
  106. package/tests/test-tunnel.js +0 -466
  107. package/tests/test-unix.js +0 -74
  108. package/tests/unicycle.jpg +0 -0
@@ -1,154 +0,0 @@
1
- 'use strict'
2
-
3
- var server = require('./server')
4
- var request = require('../index')
5
- var tape = require('tape')
6
- var http = require('http')
7
-
8
- var s = server.createServer()
9
-
10
- tape('setup', function (t) {
11
- s.listen(0, function () {
12
- t.end()
13
- })
14
- })
15
-
16
- function addTest (name, data) {
17
- tape('test ' + name, function (t) {
18
- s.on('/' + name, data.resp)
19
- data.uri = s.url + '/' + name
20
- request(data, function (err, resp, body) {
21
- t.equal(err, null)
22
- if (data.expectBody && Buffer.isBuffer(data.expectBody)) {
23
- t.deepEqual(data.expectBody.toString(), body.toString())
24
- } else if (data.expectBody) {
25
- t.deepEqual(data.expectBody, body)
26
- }
27
- t.end()
28
- })
29
- })
30
- }
31
-
32
- addTest('testGet', {
33
- resp: server.createGetResponse('TESTING!'), expectBody: 'TESTING!'
34
- })
35
-
36
- addTest('testGetChunkBreak', {
37
- resp: server.createChunkResponse(
38
- [ Buffer.from([239]),
39
- Buffer.from([163]),
40
- Buffer.from([191]),
41
- Buffer.from([206]),
42
- Buffer.from([169]),
43
- Buffer.from([226]),
44
- Buffer.from([152]),
45
- Buffer.from([131])
46
- ]),
47
- expectBody: '\uF8FF\u03A9\u2603'
48
- })
49
-
50
- addTest('testGetBuffer', {
51
- resp: server.createGetResponse(Buffer.from('TESTING!')), encoding: null, expectBody: Buffer.from('TESTING!')
52
- })
53
-
54
- addTest('testGetEncoding', {
55
- resp: server.createGetResponse(Buffer.from('efa3bfcea9e29883', 'hex')), encoding: 'hex', expectBody: 'efa3bfcea9e29883'
56
- })
57
-
58
- addTest('testGetUTF', {
59
- resp: server.createGetResponse(Buffer.from([0xEF, 0xBB, 0xBF, 226, 152, 131])), encoding: 'utf8', expectBody: '\u2603'
60
- })
61
-
62
- addTest('testGetJSON', {
63
- resp: server.createGetResponse('{"test":true}', 'application/json'), json: true, expectBody: {'test': true}
64
- })
65
-
66
- addTest('testPutString', {
67
- resp: server.createPostValidator('PUTTINGDATA'), method: 'PUT', body: 'PUTTINGDATA'
68
- })
69
-
70
- addTest('testPutBuffer', {
71
- resp: server.createPostValidator('PUTTINGDATA'), method: 'PUT', body: Buffer.from('PUTTINGDATA')
72
- })
73
-
74
- addTest('testPutJSON', {
75
- resp: server.createPostValidator(JSON.stringify({foo: 'bar'})), method: 'PUT', json: {foo: 'bar'}
76
- })
77
-
78
- addTest('testPutMultipart', {
79
- resp: server.createPostValidator(
80
- '--__BOUNDARY__\r\n' +
81
- 'content-type: text/html\r\n' +
82
- '\r\n' +
83
- '<html><body>Oh hi.</body></html>' +
84
- '\r\n--__BOUNDARY__\r\n\r\n' +
85
- 'Oh hi.' +
86
- '\r\n--__BOUNDARY__--'
87
- ),
88
- method: 'PUT',
89
- multipart: [ {'content-type': 'text/html', 'body': '<html><body>Oh hi.</body></html>'},
90
- {'body': 'Oh hi.'}
91
- ]
92
- })
93
-
94
- addTest('testPutMultipartPreambleCRLF', {
95
- resp: server.createPostValidator(
96
- '\r\n--__BOUNDARY__\r\n' +
97
- 'content-type: text/html\r\n' +
98
- '\r\n' +
99
- '<html><body>Oh hi.</body></html>' +
100
- '\r\n--__BOUNDARY__\r\n\r\n' +
101
- 'Oh hi.' +
102
- '\r\n--__BOUNDARY__--'
103
- ),
104
- method: 'PUT',
105
- preambleCRLF: true,
106
- multipart: [ {'content-type': 'text/html', 'body': '<html><body>Oh hi.</body></html>'},
107
- {'body': 'Oh hi.'}
108
- ]
109
- })
110
-
111
- addTest('testPutMultipartPostambleCRLF', {
112
- resp: server.createPostValidator(
113
- '\r\n--__BOUNDARY__\r\n' +
114
- 'content-type: text/html\r\n' +
115
- '\r\n' +
116
- '<html><body>Oh hi.</body></html>' +
117
- '\r\n--__BOUNDARY__\r\n\r\n' +
118
- 'Oh hi.' +
119
- '\r\n--__BOUNDARY__--' +
120
- '\r\n'
121
- ),
122
- method: 'PUT',
123
- preambleCRLF: true,
124
- postambleCRLF: true,
125
- multipart: [ {'content-type': 'text/html', 'body': '<html><body>Oh hi.</body></html>'},
126
- {'body': 'Oh hi.'}
127
- ]
128
- })
129
-
130
- tape('typed array', function (t) {
131
- var server = http.createServer()
132
- server.on('request', function (req, res) {
133
- req.pipe(res)
134
- })
135
- server.listen(0, function () {
136
- var data = new Uint8Array([1, 2, 3])
137
- request({
138
- uri: 'http://localhost:' + this.address().port,
139
- method: 'POST',
140
- body: data,
141
- encoding: null
142
- }, function (err, res, body) {
143
- t.error(err)
144
- t.deepEqual(Buffer.from(data), body)
145
- server.close(t.end)
146
- })
147
- })
148
- })
149
-
150
- tape('cleanup', function (t) {
151
- s.close(function () {
152
- t.end()
153
- })
154
- })
@@ -1,130 +0,0 @@
1
- 'use strict'
2
-
3
- var http = require('http')
4
- var request = require('../index')
5
- var tape = require('tape')
6
-
7
- var validUrl
8
- var malformedUrl
9
- var invalidUrl
10
-
11
- var server = http.createServer(function (req, res) {
12
- if (req.url === '/valid') {
13
- res.setHeader('set-cookie', 'foo=bar')
14
- } else if (req.url === '/malformed') {
15
- res.setHeader('set-cookie', 'foo')
16
- } else if (req.url === '/invalid') {
17
- res.setHeader('set-cookie', 'foo=bar; Domain=foo.com')
18
- }
19
- res.end('okay')
20
- })
21
-
22
- tape('setup', function (t) {
23
- server.listen(0, function () {
24
- server.url = 'http://localhost:' + this.address().port
25
- validUrl = server.url + '/valid'
26
- malformedUrl = server.url + '/malformed'
27
- invalidUrl = server.url + '/invalid'
28
- t.end()
29
- })
30
- })
31
-
32
- tape('simple cookie creation', function (t) {
33
- var cookie = request.cookie('foo=bar')
34
- t.equals(cookie.key, 'foo')
35
- t.equals(cookie.value, 'bar')
36
- t.end()
37
- })
38
-
39
- tape('simple malformed cookie creation', function (t) {
40
- var cookie = request.cookie('foo')
41
- t.equals(cookie.key, '')
42
- t.equals(cookie.value, 'foo')
43
- t.end()
44
- })
45
-
46
- tape('after server sends a cookie', function (t) {
47
- var jar1 = request.jar()
48
- request({
49
- method: 'GET',
50
- url: validUrl,
51
- jar: jar1
52
- },
53
- function (error, response, body) {
54
- t.equal(error, null)
55
- t.equal(jar1.getCookieString(validUrl), 'foo=bar')
56
- t.equal(body, 'okay')
57
-
58
- var cookies = jar1.getCookies(validUrl)
59
- t.equal(cookies.length, 1)
60
- t.equal(cookies[0].key, 'foo')
61
- t.equal(cookies[0].value, 'bar')
62
- t.end()
63
- })
64
- })
65
-
66
- tape('after server sends a malformed cookie', function (t) {
67
- var jar = request.jar()
68
- request({
69
- method: 'GET',
70
- url: malformedUrl,
71
- jar: jar
72
- },
73
- function (error, response, body) {
74
- t.equal(error, null)
75
- t.equal(jar.getCookieString(malformedUrl), 'foo')
76
- t.equal(body, 'okay')
77
-
78
- var cookies = jar.getCookies(malformedUrl)
79
- t.equal(cookies.length, 1)
80
- t.equal(cookies[0].key, '')
81
- t.equal(cookies[0].value, 'foo')
82
- t.end()
83
- })
84
- })
85
-
86
- tape('after server sends a cookie for a different domain', function (t) {
87
- var jar2 = request.jar()
88
- request({
89
- method: 'GET',
90
- url: invalidUrl,
91
- jar: jar2
92
- },
93
- function (error, response, body) {
94
- t.equal(error, null)
95
- t.equal(jar2.getCookieString(validUrl), '')
96
- t.deepEqual(jar2.getCookies(validUrl), [])
97
- t.equal(body, 'okay')
98
- t.end()
99
- })
100
- })
101
-
102
- tape('make sure setCookie works', function (t) {
103
- var jar3 = request.jar()
104
- var err = null
105
- try {
106
- jar3.setCookie(request.cookie('foo=bar'), validUrl)
107
- } catch (e) {
108
- err = e
109
- }
110
- t.equal(err, null)
111
- var cookies = jar3.getCookies(validUrl)
112
- t.equal(cookies.length, 1)
113
- t.equal(cookies[0].key, 'foo')
114
- t.equal(cookies[0].value, 'bar')
115
- t.end()
116
- })
117
-
118
- tape('custom store', function (t) {
119
- var Store = function () {}
120
- var store = new Store()
121
- var jar = request.jar(store)
122
- t.equals(store, jar._jar.store)
123
- t.end()
124
- })
125
-
126
- tape('cleanup', function (t) {
127
- server.close(function () {
128
- t.end()
129
- })
130
- })
@@ -1,340 +0,0 @@
1
- 'use strict'
2
-
3
- var server = require('./server')
4
- var request = require('../index')
5
- var qs = require('qs')
6
- var tape = require('tape')
7
-
8
- var s = server.createServer()
9
-
10
- tape('setup', function (t) {
11
- s.listen(0, function () {
12
- s.on('/', function (req, res) {
13
- res.writeHead(200, {'content-type': 'application/json'})
14
- res.end(JSON.stringify({
15
- method: req.method,
16
- headers: req.headers,
17
- qs: qs.parse(req.url.replace(/.*\?(.*)/, '$1'))
18
- }))
19
- })
20
-
21
- s.on('/head', function (req, res) {
22
- res.writeHead(200, {'x-data': JSON.stringify({method: req.method, headers: req.headers})})
23
- res.end()
24
- })
25
-
26
- s.on('/set-undefined', function (req, res) {
27
- var data = ''
28
- req.on('data', function (d) {
29
- data += d
30
- })
31
- req.on('end', function () {
32
- res.writeHead(200, {'Content-Type': 'application/json'})
33
- res.end(JSON.stringify({
34
- method: req.method, headers: req.headers, data: JSON.parse(data)
35
- }))
36
- })
37
- })
38
-
39
- t.end()
40
- })
41
- })
42
-
43
- tape('get(string, function)', function (t) {
44
- request.defaults({
45
- headers: { foo: 'bar' }
46
- })(s.url + '/', function (e, r, b) {
47
- b = JSON.parse(b)
48
- t.equal(b.method, 'GET')
49
- t.equal(b.headers.foo, 'bar')
50
- t.end()
51
- })
52
- })
53
-
54
- tape('merge headers', function (t) {
55
- request.defaults({
56
- headers: { foo: 'bar', merged: 'no' }
57
- })(s.url + '/', {
58
- headers: { merged: 'yes' }, json: true
59
- }, function (e, r, b) {
60
- t.equal(b.headers.foo, 'bar')
61
- t.equal(b.headers.merged, 'yes')
62
- t.end()
63
- })
64
- })
65
-
66
- tape('deep extend', function (t) {
67
- request.defaults({
68
- headers: { a: 1, b: 2 },
69
- qs: { a: 1, b: 2 }
70
- })(s.url + '/', {
71
- headers: { b: 3, c: 4 },
72
- qs: { b: 3, c: 4 },
73
- json: true
74
- }, function (e, r, b) {
75
- delete b.headers.host
76
- delete b.headers.accept
77
- delete b.headers.connection
78
- t.deepEqual(b.headers, { a: '1', b: '3', c: '4' })
79
- t.deepEqual(b.qs, { a: '1', b: '3', c: '4' })
80
- t.end()
81
- })
82
- })
83
-
84
- tape('default undefined header', function (t) {
85
- request.defaults({
86
- headers: { foo: 'bar', test: undefined }, json: true
87
- })(s.url + '/', function (e, r, b) {
88
- t.equal(b.method, 'GET')
89
- t.equal(b.headers.foo, 'bar')
90
- t.equal(b.headers.test, undefined)
91
- t.end()
92
- })
93
- })
94
-
95
- tape('post(string, object, function)', function (t) {
96
- request.defaults({
97
- headers: { foo: 'bar' }
98
- }).post(s.url + '/', { json: true }, function (e, r, b) {
99
- t.equal(b.method, 'POST')
100
- t.equal(b.headers.foo, 'bar')
101
- t.equal(b.headers['content-type'], undefined)
102
- t.end()
103
- })
104
- })
105
-
106
- tape('patch(string, object, function)', function (t) {
107
- request.defaults({
108
- headers: { foo: 'bar' }
109
- }).patch(s.url + '/', { json: true }, function (e, r, b) {
110
- t.equal(b.method, 'PATCH')
111
- t.equal(b.headers.foo, 'bar')
112
- t.equal(b.headers['content-type'], undefined)
113
- t.end()
114
- })
115
- })
116
-
117
- tape('post(string, object, function) with body', function (t) {
118
- request.defaults({
119
- headers: { foo: 'bar' }
120
- }).post(s.url + '/', {
121
- json: true,
122
- body: { bar: 'baz' }
123
- }, function (e, r, b) {
124
- t.equal(b.method, 'POST')
125
- t.equal(b.headers.foo, 'bar')
126
- t.equal(b.headers['content-type'], 'application/json')
127
- t.end()
128
- })
129
- })
130
-
131
- tape('del(string, function)', function (t) {
132
- request.defaults({
133
- headers: {foo: 'bar'},
134
- json: true
135
- }).del(s.url + '/', function (e, r, b) {
136
- t.equal(b.method, 'DELETE')
137
- t.equal(b.headers.foo, 'bar')
138
- t.end()
139
- })
140
- })
141
-
142
- tape('delete(string, function)', function (t) {
143
- request.defaults({
144
- headers: {foo: 'bar'},
145
- json: true
146
- }).delete(s.url + '/', function (e, r, b) {
147
- t.equal(b.method, 'DELETE')
148
- t.equal(b.headers.foo, 'bar')
149
- t.end()
150
- })
151
- })
152
-
153
- tape('head(object, function)', function (t) {
154
- request.defaults({
155
- headers: { foo: 'bar' }
156
- }).head({ uri: s.url + '/head' }, function (e, r, b) {
157
- b = JSON.parse(r.headers['x-data'])
158
- t.equal(b.method, 'HEAD')
159
- t.equal(b.headers.foo, 'bar')
160
- t.end()
161
- })
162
- })
163
-
164
- tape('recursive defaults', function (t) {
165
- t.plan(11)
166
-
167
- var defaultsOne = request.defaults({ headers: { foo: 'bar1' } })
168
- var defaultsTwo = defaultsOne.defaults({ headers: { baz: 'bar2' } })
169
- var defaultsThree = defaultsTwo.defaults({}, function (options, callback) {
170
- options.headers = {
171
- foo: 'bar3'
172
- }
173
- defaultsTwo(options, callback)
174
- })
175
-
176
- defaultsOne(s.url + '/', {json: true}, function (e, r, b) {
177
- t.equal(b.method, 'GET')
178
- t.equal(b.headers.foo, 'bar1')
179
- })
180
-
181
- defaultsTwo(s.url + '/', {json: true}, function (e, r, b) {
182
- t.equal(b.method, 'GET')
183
- t.equal(b.headers.foo, 'bar1')
184
- t.equal(b.headers.baz, 'bar2')
185
- })
186
-
187
- // requester function on recursive defaults
188
- defaultsThree(s.url + '/', {json: true}, function (e, r, b) {
189
- t.equal(b.method, 'GET')
190
- t.equal(b.headers.foo, 'bar3')
191
- t.equal(b.headers.baz, 'bar2')
192
- })
193
-
194
- defaultsTwo.get(s.url + '/', {json: true}, function (e, r, b) {
195
- t.equal(b.method, 'GET')
196
- t.equal(b.headers.foo, 'bar1')
197
- t.equal(b.headers.baz, 'bar2')
198
- })
199
- })
200
-
201
- tape('recursive defaults requester', function (t) {
202
- t.plan(5)
203
-
204
- var defaultsOne = request.defaults({}, function (options, callback) {
205
- var headers = options.headers || {}
206
- headers.foo = 'bar1'
207
- options.headers = headers
208
-
209
- request(options, callback)
210
- })
211
-
212
- var defaultsTwo = defaultsOne.defaults({}, function (options, callback) {
213
- var headers = options.headers || {}
214
- headers.baz = 'bar2'
215
- options.headers = headers
216
-
217
- defaultsOne(options, callback)
218
- })
219
-
220
- defaultsOne.get(s.url + '/', {json: true}, function (e, r, b) {
221
- t.equal(b.method, 'GET')
222
- t.equal(b.headers.foo, 'bar1')
223
- })
224
-
225
- defaultsTwo.get(s.url + '/', {json: true}, function (e, r, b) {
226
- t.equal(b.method, 'GET')
227
- t.equal(b.headers.foo, 'bar1')
228
- t.equal(b.headers.baz, 'bar2')
229
- })
230
- })
231
-
232
- tape('test custom request handler function', function (t) {
233
- t.plan(3)
234
-
235
- var requestWithCustomHandler = request.defaults({
236
- headers: { foo: 'bar' },
237
- body: 'TESTING!'
238
- }, function (uri, options, callback) {
239
- var params = request.initParams(uri, options, callback)
240
- params.headers.x = 'y'
241
- return request(params.uri, params, params.callback)
242
- })
243
-
244
- t.throws(function () {
245
- requestWithCustomHandler.head(s.url + '/', function (e, r, b) {
246
- throw new Error('We should never get here')
247
- })
248
- }, /HTTP HEAD requests MUST NOT include a request body/)
249
-
250
- requestWithCustomHandler.get(s.url + '/', function (e, r, b) {
251
- b = JSON.parse(b)
252
- t.equal(b.headers.foo, 'bar')
253
- t.equal(b.headers.x, 'y')
254
- })
255
- })
256
-
257
- tape('test custom request handler function without options', function (t) {
258
- t.plan(2)
259
-
260
- var customHandlerWithoutOptions = request.defaults(function (uri, options, callback) {
261
- var params = request.initParams(uri, options, callback)
262
- var headers = params.headers || {}
263
- headers.x = 'y'
264
- headers.foo = 'bar'
265
- params.headers = headers
266
- return request(params.uri, params, params.callback)
267
- })
268
-
269
- customHandlerWithoutOptions.get(s.url + '/', function (e, r, b) {
270
- b = JSON.parse(b)
271
- t.equal(b.headers.foo, 'bar')
272
- t.equal(b.headers.x, 'y')
273
- })
274
- })
275
-
276
- tape('test only setting undefined properties', function (t) {
277
- request.defaults({
278
- method: 'post',
279
- json: true,
280
- headers: { 'x-foo': 'bar' }
281
- })({
282
- uri: s.url + '/set-undefined',
283
- json: {foo: 'bar'},
284
- headers: {'x-foo': 'baz'}
285
- }, function (e, r, b) {
286
- t.equal(b.method, 'POST')
287
- t.equal(b.headers['content-type'], 'application/json')
288
- t.equal(b.headers['x-foo'], 'baz')
289
- t.deepEqual(b.data, { foo: 'bar' })
290
- t.end()
291
- })
292
- })
293
-
294
- tape('test only function', function (t) {
295
- var post = request.post
296
- t.doesNotThrow(function () {
297
- post(s.url + '/', function (e, r, b) {
298
- t.equal(r.statusCode, 200)
299
- t.end()
300
- })
301
- })
302
- })
303
-
304
- tape('invoke defaults', function (t) {
305
- var d = request.defaults({
306
- uri: s.url + '/',
307
- headers: { foo: 'bar' }
308
- })
309
- d({json: true}, function (e, r, b) {
310
- t.equal(b.method, 'GET')
311
- t.equal(b.headers.foo, 'bar')
312
- t.end()
313
- })
314
- })
315
-
316
- tape('invoke convenience method from defaults', function (t) {
317
- var d = request.defaults({
318
- uri: s.url + '/',
319
- headers: { foo: 'bar' }
320
- })
321
- d.get({json: true}, function (e, r, b) {
322
- t.equal(b.method, 'GET')
323
- t.equal(b.headers.foo, 'bar')
324
- t.end()
325
- })
326
- })
327
-
328
- tape('defaults without options', function (t) {
329
- var d = request.defaults()
330
- d.get(s.url + '/', {json: true}, function (e, r, b) {
331
- t.equal(r.statusCode, 200)
332
- t.end()
333
- })
334
- })
335
-
336
- tape('cleanup', function (t) {
337
- s.close(function () {
338
- t.end()
339
- })
340
- })