UNPKG

1.83 kBJavaScriptView Raw
1var tape = require('tape')
2var concat = require('concat-stream')
3var http = require('http')
4var docker = require('./')
5
6var server = http.createServer(function(req, res) {
7 if (req.method === 'POST') return req.pipe(res)
8
9 if (req.url === '/error') {
10 res.statusCode = 500
11 res.end('error message')
12 return
13 }
14
15 res.end(JSON.stringify({
16 method: req.method,
17 path: req.url
18 }))
19})
20
21server.listen(0, function() {
22 server.unref()
23
24 tape('get json', function(t) {
25 var request = docker(server.address().port)
26
27 request.get('/', {json:true, qs:{foo:'bar'}}, function(err, body) {
28 t.ok(!err)
29 t.same(body.method, 'GET')
30 t.same(body.path, '/?foo=bar')
31 t.end()
32 })
33 })
34
35 tape('get stream', function(t) {
36 var request = docker(server.address().port)
37
38 request.get('/', function(err, response) {
39 t.ok(!err)
40 response.pipe(concat(function(buf) {
41 t.same(buf.toString(), '{"method":"GET","path":"/"}')
42 t.end()
43 }))
44 })
45 })
46
47 tape('post stream', function(t) {
48 var request = docker(server.address().port)
49
50 var post = request.post('/', function(err, response) {
51 t.ok(!err)
52 response.pipe(concat(function(buf) {
53 t.same(buf.toString(), 'hello world')
54 t.end()
55 }))
56 })
57
58 post.write('hello')
59 post.end(' world')
60 })
61
62 tape('post json', function(t) {
63 var request = docker(server.address().port)
64
65 request.post('/', {json:{method:'GET', path:'/'}}, function(err, body) {
66 t.ok(!err)
67 t.same(body.method, 'GET')
68 t.same(body.path, '/')
69 t.end()
70 })
71 })
72
73 tape('get error', function(t) {
74 var request = docker(server.address().port)
75
76 request.get('/error', function(err) {
77 t.ok(err)
78 t.same(err.message, 'error message')
79 t.end()
80 })
81 })
82})