| Leo Repp | 58b9f11 | 2021-11-22 11:57:47 +0100 | [diff] [blame^] | 1 | var after = require('after'); |
| 2 | var body = require('../index.js'); |
| 3 | var hammock = require('hammock'); |
| 4 | var test = require('tape'); |
| 5 | |
| 6 | test('caching works', function t(assert) { |
| 7 | var request = hammock.Request({ |
| 8 | method: 'GET', |
| 9 | headers: { |
| 10 | 'Content-Type': 'application/json' |
| 11 | }, |
| 12 | url: '/somewhere' |
| 13 | }); |
| 14 | var response = hammock.Response(); |
| 15 | |
| 16 | var done = after(2, assert.end.bind(assert)); |
| 17 | |
| 18 | body(request, response, { cache: true }, function onBody(err, body) { |
| 19 | assert.equal(body, 'thisbody', 'raw body has been set'); |
| 20 | assert.pass('body is parsed'); |
| 21 | done(); |
| 22 | }); |
| 23 | |
| 24 | request.on('end', function() { |
| 25 | body(request, response, { cache: true }, function onBody(err, body) { |
| 26 | assert.equal(body, 'thisbody', 'cached body is provided'); |
| 27 | assert.pass('body is parsed'); |
| 28 | done(); |
| 29 | }); |
| 30 | }); |
| 31 | |
| 32 | request.end('thisbody'); |
| 33 | }); |
| 34 | |
| 35 | test('parallel caching works', function t(assert) { |
| 36 | var request = hammock.Request({ |
| 37 | method: 'GET', |
| 38 | headers: { |
| 39 | 'Content-Type': 'application/json' |
| 40 | }, |
| 41 | url: '/somewhere' |
| 42 | }); |
| 43 | request.end('thisbody'); |
| 44 | var response = hammock.Response(); |
| 45 | |
| 46 | var done = after(5, function() { |
| 47 | process.nextTick(function() { |
| 48 | assert.equal(request.listeners('rawBody').length, 0, 'rawBody listeners cleared'); |
| 49 | assert.end(); |
| 50 | }); |
| 51 | }); |
| 52 | |
| 53 | for (var i = 0; i < 5; ++i) { |
| 54 | body(request, response, { cache: true }, function onBody(err, body) { |
| 55 | assert.equal(body, 'thisbody', 'raw body has been set'); |
| 56 | assert.pass('body is parsed'); |
| 57 | done(); |
| 58 | }); |
| 59 | } |
| 60 | }); |