UNPKG

3.18 kBJavaScriptView Raw
1var concat = require('simple-concat')
2var get = require('../')
3var http = require('http')
4var selfSignedHttps = require('self-signed-https')
5var test = require('tape')
6
7test('simple get', function (t) {
8 t.plan(5)
9
10 var server = http.createServer(function (req, res) {
11 t.equal(req.url, '/path')
12 res.statusCode = 200
13 res.end('response')
14 })
15
16 server.listen(0, function () {
17 var port = server.address().port
18 get('http://localhost:' + port + '/path', function (err, res) {
19 t.error(err)
20 t.equal(res.statusCode, 200)
21 concat(res, function (err, data) {
22 t.error(err)
23 t.equal(data.toString(), 'response')
24 server.close()
25 })
26 })
27 })
28})
29
30test('https', function (t) {
31 t.plan(5)
32
33 var server = selfSignedHttps(function (req, res) {
34 t.equal(req.url, '/path')
35 res.statusCode = 200
36 res.end('response')
37 })
38
39 server.listen(0, function () {
40 var port = server.address().port
41 get({
42 url: 'https://localhost:' + port + '/path',
43 rejectUnauthorized: false
44 }, function (err, res) {
45 t.error(err)
46 t.equal(res.statusCode, 200)
47 concat(res, function (err, data) {
48 t.error(err)
49 t.equal(data.toString(), 'response')
50 server.close()
51 })
52 })
53 })
54})
55
56test('simple get json', function (t) {
57 t.plan(6)
58
59 var server = http.createServer(function (req, res) {
60 t.equal(req.url, '/path')
61 t.equal(req.headers['accept'], 'application/json')
62 res.statusCode = 200
63 res.end('{"message":"response"}')
64 })
65
66 server.listen(0, function () {
67 var port = server.address().port
68 var opts = {
69 url: 'http://localhost:' + port + '/path',
70 json: true
71 }
72 get(opts, function (err, res) {
73 t.error(err)
74 t.equal(res.statusCode, 200)
75 concat(res, function (err, data) {
76 t.error(err)
77 t.equal(data.toString(), '{"message":"response"}')
78 server.close()
79 })
80 })
81 })
82})
83
84test('HEAD request', function (t) {
85 t.plan(3)
86
87 var server = http.createServer(function (req, res) {
88 t.equal(req.method, 'HEAD')
89 // Taken from real-world response from HEAD request to GitHub.com
90 res.setHeader('content-type', 'text/html; charset=utf-8')
91 res.setHeader('content-encoding', 'gzip')
92 res.setHeader('connection', 'close')
93 res.statusCode = 200
94 req.pipe(res)
95 })
96
97 server.listen(0, function () {
98 var port = server.address().port
99 var opts = {
100 method: 'HEAD',
101 url: 'http://localhost:' + port
102 }
103 get.head(opts, function (err, res) {
104 t.error(err)
105 t.equal(res.statusCode, 200)
106 server.close()
107 })
108 })
109})
110
111test('timeout option', function (t) {
112 t.plan(2)
113
114 var server = http.createServer(function (req, res) {
115 t.equal(req.url, '/path')
116 setTimeout(function () {
117 // response should not be sent - should timeout before it's sent
118 res.end('response')
119 }, 2000)
120 })
121
122 server.listen(0, function () {
123 var port = server.address().port
124 get({
125 url: 'http://localhost:' + port + '/path',
126 timeout: 1000
127 }, function (err, res) {
128 t.ok(err instanceof Error)
129 server.close()
130 })
131 })
132})