1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /*
- * simple-test.js: Simple tests for basic streaming and non-streaming HTTP requests with union.
- *
- * (C) 2011, Charlie Robbins & the Contributors
- * MIT LICENSE
- *
- */
- var assert = require('assert'),
- fs = require('fs'),
- path = require('path'),
- request = require('request'),
- vows = require('vows'),
- union = require('../lib/index'),
- macros = require('./helpers/macros');
- var doubleWrite = false,
- server;
- server = union.createServer({
- before: [
- function (req, res) {
- res.json(200, { 'hello': 'world' });
- res.emit('next');
- },
- function (req, res) {
- doubleWrite = true;
- res.json(200, { 'hello': 'world' });
- res.emit('next');
- }
- ]
- });
- vows.describe('union/double-write').addBatch({
- "When using union": {
- "an http server which attempts to write to the response twice": {
- topic: function () {
- server.listen(9091, this.callback);
- },
- "a GET request to `/foo`": {
- topic: function () {
- request({ uri: 'http://localhost:9091/foo' }, this.callback);
- },
- "it should respond with `{ 'hello': 'world' }`": function (err, res, body) {
- macros.assertValidResponse(err, res);
- assert.deepEqual(JSON.parse(body), { 'hello': 'world' });
- },
- "it should not write to the response twice": function () {
- assert.isFalse(doubleWrite);
- }
- }
- }
- }
- }).addBatch({
- "When the tests are over": {
- "the server should close": function () {
- server.close();
- }
- }
- }).export(module);
|