eight-track
Version:
Record and playback HTTP requests
56 lines (50 loc) • 1.39 kB
JavaScript
var expect = require('chai').expect;
var express = require('express');
var httpUtils = require('./utils/http');
var serverUtils = require('./utils/server');
describe('A server that echoes method that is being proxied', function () {
serverUtils.run(1337, function (req, res) {
express.urlencoded()(req, res, function (err) {
if (err) { throw err; }
res.send({
method: req.method,
body: req.body
});
});
});
serverUtils.runEightServer(1338, {
fixtureDir: __dirname + '/actual-files/method',
url: 'http://localhost:1337'
});
describe('when requested via POST', function () {
httpUtils.save({
method: 'POST',
url: 'http://localhost:1338/',
form: {
hello: 'world'
}
});
it('replies with POST', function () {
expect(this.err).to.equal(null);
expect(this.res.statusCode).to.equal(200);
expect(JSON.parse(this.body)).to.deep.equal({
method: 'POST',
body: {
hello: 'world'
}
});
});
describe('when requested again', function () {
httpUtils.save({
method: 'POST',
url: 'http://localhost:1338/',
form: {
hello: 'world'
}
});
it('does not double request', function () {
expect(this.requests[1337]).to.have.property('length', 1);
});
});
});
});