var server = require('./server') , assert = require('assert') , request = require('../main.js') ; var s = server.createServer(); s.listen(s.port, function () { var counter = 0; s.on('/get', function (req, resp) { assert.equal(req.headers.foo, 'bar'); assert.equal(req.method, 'GET') resp.writeHead(200, {'Content-Type': 'text/plain'}); resp.end('TESTING!'); }); // test get(string, function) request.defaults({headers:{foo:"bar"}})(s.url + '/get', function (e, r, b){ if (e) throw e; assert.deepEqual("TESTING!", b); counter += 1; }); s.on('/post', function (req, resp) { assert.equal(req.headers.foo, 'bar'); assert.equal(req.headers['content-type'], 'application/json'); assert.equal(req.method, 'POST') resp.writeHead(200, {'Content-Type': 'application/json'}); resp.end(JSON.stringify({foo:'bar'})); }); // test post(string, object, function) request.defaults({headers:{foo:"bar"}}).post(s.url + '/post', {json: true}, function (e, r, b){ if (e) throw e; assert.deepEqual('bar', b.foo); counter += 1; }); s.on('/del', function (req, resp) { assert.equal(req.headers.foo, 'bar'); assert.equal(req.method, 'DELETE') resp.writeHead(200, {'Content-Type': 'application/json'}); resp.end(JSON.stringify({foo:'bar'})); }); // test .del(string, function) request.defaults({headers:{foo:"bar"}, json:true}).del(s.url + '/del', function (e, r, b){ if (e) throw e; assert.deepEqual('bar', b.foo); counter += 1; }); s.on('/head', function (req, resp) { assert.equal(req.headers.foo, 'bar'); assert.equal(req.method, 'HEAD') resp.writeHead(200, {'Content-Type': 'text/plain'}); resp.end(); }); // test head.(object, function) request.defaults({headers:{foo:"bar"}}).head({uri: s.url + '/head'}, function (e, r, b){ if (e) throw e; counter += 1; console.log(counter.toString() + " tests passed.") s.close() }); })