Spaces:
Sleeping
Sleeping
| /* | |
| * 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); | |