'use strict'; var zlib = require('zlib'); var tape = require('tape'); var got = require('../'); var server = require('./server.js'); var s = server.createServer(); var testContent = 'Compressible response content.\n'; s.on('/', function (req, res) { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.setHeader('Content-Encoding', 'gzip'); zlib.gzip(testContent, function (err, data) { res.end(data); }); }); s.on('/corrupted', function (req, res) { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.setHeader('Content-Encoding', 'gzip'); res.end('Not gzipped content'); }); tape('setup', function (t) { s.listen(s.port, function () { t.end(); }); }); tape('ungzip content', function (t) { got(s.url, function (err, data) { t.error(err); t.equal(data, testContent); t.end(); }); }); tape('ungzip error', function (t) { got(s.url + '/corrupted', function (err) { t.ok(err); t.equal(err.message, 'Reading ' + s.url + '/corrupted response failed'); t.end(); }); }); tape('cleanup', function (t) { s.close(); t.end(); });