UNPKG

connect-form

Version:

urlencoded / multipart form parsing middleware for Connect

69 lines (63 loc) 2.32 kB
/** * Module dependencies. */ var connect = require('connect'), helpers = require('./helpers'), assert = require('assert'), http = require('http'); module.exports = { 'test urlencoded body': function(){ var server = helpers.run( connect.bodyDecoder(), function(req, res){ assert.eql({ user: { name: 'tj' }}, req.body, 'Test body-decoder urlencoded req.body'); res.writeHead(200); res.end(); } ); var req = server.request('POST', '/', { 'Content-Type': 'application/x-www-form-urlencoded' }); req.write('user[name]=tj'); req.end(); }, 'test json body': function(){ var server = helpers.run( connect.bodyDecoder(), function(req, res){ assert.eql({ user: { name: 'tj' }}, req.body, 'Test body-decoder json req.body'); res.writeHead(200); res.end(); } ); var req = server.request('POST', '/', { 'Content-Type': 'application/json; charset=utf8' }); req.write('{"user":{"name":"tj"}}'); req.end(); }, 'test empty body': function(){ var server = helpers.run( connect.bodyDecoder(), function(req, res){ assert.eql({}, req.body, 'Test body-decoder empty req.body'); res.writeHead(200); res.end(); } ); var req = server.request('POST', '/', { 'Content-Type': 'application/json; charset=utf8' }); req.write(''); req.end(); }, 'test invalid body': function(){ var server = helpers.run( connect.bodyDecoder(), function(err, req, res, next){ assert.equal('unexpected_eos', err.type, 'Test body-decoder invalid json error'); assert.equal('{"user":{"name":"tj"', req.rawBody, 'Test body-decoder req.rawBody'); assert.strictEqual(undefined, req.body, 'Test body-decoder invalid json req.body'); res.writeHead(200); res.end(); } ); var req = server.request('POST', '/', { 'Content-Type': 'application/json' }); req.write('{"user":{"name":"tj"'); req.end(); } }