From 63febeceb86f3b113df4680d4d95b9b8dc2e95cd Mon Sep 17 00:00:00 2001 From: Swizz Date: Wed, 13 May 2020 10:45:17 +0200 Subject: [PATCH 1/2] next callback should use the response payload --- plugin.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin.js b/plugin.js index bbbd5d6..65dc8ca 100644 --- a/plugin.js +++ b/plugin.js @@ -48,7 +48,7 @@ function etagOnSend (req, res, payload, next) { { id: etag, segment: this.cacheSegment }, true, res._etagLife, - next + (err) => next(err, payload) ) } From 1987d06569b4a866f57dd074490de7ee02c237a1 Mon Sep 17 00:00:00 2001 From: tiswrt Date: Mon, 1 Mar 2021 14:20:09 +0100 Subject: [PATCH 2/2] add test --- test/cache.test.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/test/cache.test.js b/test/cache.test.js index 24a9c6c..841636c 100644 --- a/test/cache.test.js +++ b/test/cache.test.js @@ -138,3 +138,36 @@ test('etag cache life is customizable', (t) => { .on('error', t.threw) }) }) + +test('returns response payload', (t) => { + t.plan(1) + const instance = fastify() + instance.register(plugin) + + instance.get('/one', (req, reply) => { + reply + .etag('123456', 300) + .send({ hello: 'world' }) + }) + + instance.listen(0, (err) => { + if (err) t.threw(err) + instance.server.unref() + const portNum = instance.server.address().port + const opts = { + host: '127.0.0.1', + port: portNum, + path: '/one' + } + http + .get(opts, (res) => { + let payload = '' + res.on('data', (chunk) => { + payload += chunk + }).on('end', () => { + t.same(JSON.parse(payload), { hello: 'world' }) + }).on('error', t.threw) + }) + .on('error', t.threw) + }) +})