JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 45961
  • Score
    100M100P100Q152367F
  • License MIT

Mocks node.js http.ServerResponse. See also `mock-req`.

Package Exports

  • mock-res

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (mock-res) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

mock-res

Mocks node.js http.ServerResponse (a response). See also mock-req.

Being a readable/writable stream, you can pipe the response body to and from it.

Usage

See test.js for further usage.

var MockRes = require('mock-res');

// Basic usage
var res = new MockRes();

// Supply a callback to be called after res.end() is called
var res = new MockRes(function onEnd() {
    console.log('Response sent');
});

// Listen for stream events
res.on('error', function (err) {
    // If not listened for, the 'error' event will throw,
    // as is true for any stream.
});
res.on('finish', function () {
    console.log('Finished writing response');
});

// Read status code
res.statusCode; // 200 by default

// Read body as string
res._getString(); // 'I am a chicken';

// Read body as parsed JSON
res._getJSON(); // { chicken: true }

// Pipe body somewhere
res.pipe(fs.createWriteStream('/tmp/yo'));

Example test case

var assert = require('assert');
var list = require('./list-handler');
var MockRes = require('mock-res');

function test(done) {
    /* Arrange */

    // Use `mock-req` for a better mock
    var req = {
        method: 'GET',
        url: '/foos'
    }

    var res = new MockRes(onEnd);

    /* Act */
    list(req, res);

    /* Assert */
    function onEnd() {
        // NOTE `this` === `res`

        assert.equal(this.statusCode, 200);
        assert.equal(this._getString(), '[{"id":0},{"id":1}]');
        assert.deepEqual(this._getJSON(), [{id: 0 }, {id: 1 }]);
        assert.deepEqual(this.getHeader('set-cookie'), ['a=1', 'b=2']);

        res.pipe(process.stdout); // `res` is just a readable stream here

        done(); // this is an async test
    }
}

Methods

  • All readable/writable stream methods.
  • writeHead(statusCode, [reasonPhrase], [headers]) Sets the response status code, status message, and headers. See also the http.ServerResponse documentation.
  • setHeader(), getHeader(), getHeaders(), removeHeader()
  • _getString() Reads the body as a string, from the internal stream buffer.
  • _getJSON() Reads the body as a parsed JSON object, from the internal stream buffer.