| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | var after = require('after');var body = require('../index.js');var hammock = require('hammock');var test = require('tape');test('caching works', function t(assert) {    var request = hammock.Request({        method: 'GET',        headers: {            'Content-Type': 'application/json'        },        url: '/somewhere'    });    var response = hammock.Response();    var done = after(2, assert.end.bind(assert));    body(request, response, { cache: true }, function onBody(err, body) {        assert.equal(body, 'thisbody', 'raw body has been set');        assert.pass('body is parsed');        done();    });    request.on('end', function() {        body(request, response, { cache: true }, function onBody(err, body) {            assert.equal(body, 'thisbody', 'cached body is provided');            assert.pass('body is parsed');            done();        });    });    request.end('thisbody');});test('parallel caching works', function t(assert) {    var request = hammock.Request({        method: 'GET',        headers: {            'Content-Type': 'application/json'        },        url: '/somewhere'    });    request.end('thisbody');    var response = hammock.Response();    var done = after(5, function() {        process.nextTick(function() {            assert.equal(request.listeners('rawBody').length, 0, 'rawBody listeners cleared');            assert.end();        });    });    for (var i = 0; i < 5; ++i) {        body(request, response, { cache: true }, function onBody(err, body) {            assert.equal(body, 'thisbody', 'raw body has been set');            assert.pass('body is parsed');            done();        });    }});
 |