From cd040047ee66c2b70a6568f78494afd33f96420d Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Tue, 29 May 2018 09:22:18 +0700 Subject: [PATCH] Parse application/x-www-form-urlencoded as URL-encoded form and expose as req.body --- src/index.js | 1 + test/create-test-server.js | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/index.js b/src/index.js index 88695b3..fc044a3 100644 --- a/src/index.js +++ b/src/index.js @@ -26,6 +26,7 @@ const createTestServer = opts => createCert(opts && opts.certificate) app.set('etag', false); app.use(bodyParser.json({ type: 'application/json' })); app.use(bodyParser.text({ type: 'text/plain' })); + app.use(bodyParser.urlencoded({ type: 'application/x-www-form-urlencoded' })); app.caCert = keys.caCert; diff --git a/test/create-test-server.js b/test/create-test-server.js index 62b4c92..55da50c 100644 --- a/test/create-test-server.js +++ b/test/create-test-server.js @@ -1,3 +1,4 @@ +import querystring from 'querystring'; import test from 'ava'; import got from 'got'; import createTestServer from '../'; @@ -108,6 +109,21 @@ test('server automatically parses text request body', async t => { }); }); +test('server automatically parses URL-encoded form request body', async t => { + const server = await createTestServer(); + const object = { foo: 'bar' }; + + server.post('/echo', (req, res) => { + t.deepEqual(req.body, object); + res.end(); + }); + + await got.post(server.url + '/echo', { + headers: { 'content-type': 'application/x-www-form-urlencoded' }, + body: querystring.stringify(object) + }); +}); + test('opts.certificate is passed through to createCert()', async t => { const server = await createTestServer({ certificate: 'foo.bar' });