UNPKG

1.31 kBJavaScriptView Raw
1var fs = require('fs')
2var http = require('http')
3var nugget = require('../')
4var path = require('path')
5var test = require('tape')
6
7var data = new Buffer('hello everybody I am the data');
8
9var testServer = http.createServer(function(req, res) {
10 if (!req.headers['range']) {
11 res.setHeader('content-length', data.length)
12 res.setHeader('accept-ranges', 'bytes')
13 res.end(data)
14 } else {
15 var range = req.headers['range'].split('=').pop().split('-').map(function (s) {
16 return parseInt(s, 10)
17 })
18 res.setHeader('content-length', range[1] - range[0])
19 res.setHeader('content-range', range[0] + '-' + range[1] + '/' + data.length);
20 res.end(data.slice(range[0], range[1]))
21 }
22})
23
24var target = path.join(__dirname, 'foobar.html')
25if (fs.existsSync(target)) fs.unlinkSync(target)
26
27fs.writeFileSync(target, data.slice(0, 10))
28
29testServer.listen(0, function() {
30 var port = this.address().port
31 test('fetches rest of file', function(t) {
32 nugget('http://localhost:' + port + '/foobar.html', {dir: __dirname, resume: true}, function(err) {
33 t.ok(fs.existsSync(target), 'downloaded file')
34 t.equal(fs.statSync(target).size, data.length, 'file is complete');
35 if (fs.existsSync(target)) fs.unlinkSync(target)
36 t.end()
37 testServer.close()
38 })
39 })
40})