'use strict'; var assert = require('assert'); var express = require('express'); var bodyParser = require('body-parser'); var request = require('supertest'); var proxy = require('../'); describe('http verbs', function () { this.timeout(10000); var app; beforeEach(function () { app = express(); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(proxy('httpbin.org')); }); it('test proxy get', function (done) { request(app) .get('/get') .end(function (err, res) { if (err) { return done(err); } assert(/httpbin.org/.test(res.body.headers['Host'])); assert.equal(res.body.url, 'http://httpbin.org/get'); done(err); }); }); it('test proxy post', function (done) { request(app) .post('/post') .send({ mypost: 'hello' }) .end(function (err, res) { assert.equal(res.body.data, '{"mypost":"hello"}'); done(err); }); }); it('test proxy post by x-www-form-urlencoded', function (done) { request(app) .post('/post') .set('Content-Type', 'application/x-www-form-urlencoded') .send('mypost=hello') .end(function (err, res) { assert.equal(JSON.stringify(res.body.form), '{"mypost":"hello"}'); done(err); }); }); it('test proxy put', function (done) { request(app) .put('/put') .send({ mypost: 'hello' }) .end(function (err, res) { assert.equal(res.body.data, '{"mypost":"hello"}'); done(err); }); }); it('test proxy patch', function (done) { request(app) .patch('/patch') .send({ mypost: 'hello' }) .end(function (err, res) { assert.equal(res.body.data, '{"mypost":"hello"}'); done(err); }); }); it('test proxy delete', function (done) { request(app) .del('/delete') .send({ mypost: 'hello' }) .end(function (err, res) { assert.equal(res.body.data, '{"mypost":"hello"}'); done(err); }); }); });