fastify
Version:
Fast and low overhead web framework, for Node.js
48 lines (44 loc) • 1.15 kB
JavaScript
const t = require('tap')
const test = t.test
const { Readable } = require('stream')
const internals = require('../../lib/contentTypeParser')[Symbol.for('internals')]
const Request = require('../../lib/request')
const Reply = require('../../lib/reply')
test('rawBody function', t => {
t.plan(1)
const body = Buffer.from('你好 世界')
const parser = {
asString: true,
asBuffer: false,
fn (req, bodyInString) {
t.equal(bodyInString, body.toString())
}
}
const res = {}
res.end = () => {}
res.writeHead = () => {}
res.log = { error: () => {}, info: () => {} }
const context = {
Reply: Reply,
Request: Request,
preHandler: [],
onSend: [],
_parserOptions: {
limit: 1024
}
}
const rs = new Readable()
rs._read = function () {}
rs.headers = { 'content-length': body.length }
const request = new Request('params', rs, 'query', { 'content-length': body.length }, 'log')
const reply = new Reply(res, context, {})
internals.rawBody(
request,
reply,
reply.context._parserOptions,
parser
)
rs.emit('data', body.toString())
rs.emit('end')
})