1 | var tape = require('tape')
|
2 | var concat = require('concat-stream')
|
3 | var http = require('http')
|
4 | var docker = require('./')
|
5 |
|
6 | var 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 |
|
21 | server.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 | })
|