'use strict'; var test = require('tap').test; var got = require('../'); var server = require('./server.js'); var s = server.createServer(); s.on('/', function (req, res) { res.statusCode = 404; res.end(); }); s.on('/test', function (req, res) { res.end(req.url); }); s.on('/?test=wow', function (req, res) { res.end(req.url); }); test('setup', function (t) { s.listen(s.port, function () { t.end(); }); }); test('url argument is required', function (t) { t.throws(function () { got(); }, /Parameter `url` must be a string or object, not undefined/); t.end(); }); test('accepts url.parse object as first argument', function (t) { got({hostname: s.host, port: s.port, path: '/test'}, function (err, data) { t.error(err); t.equal(data, '/test'); t.end(); }); }); test('overrides querystring from opts', function (t) { got(s.url + '/?test=doge', {query: {test: 'wow'}}, function (err, data) { t.error(err); t.equal(data, '/?test=wow'); t.end(); }); }); test('cleanup', function (t) { s.close(); t.end(); });