diff options
Diffstat (limited to 'node_modules/body/test')
-rw-r--r-- | node_modules/body/test/index.js | 2 | ||||
-rw-r--r-- | node_modules/body/test/integration.js | 105 | ||||
-rw-r--r-- | node_modules/body/test/unit.js | 60 |
3 files changed, 167 insertions, 0 deletions
diff --git a/node_modules/body/test/index.js b/node_modules/body/test/index.js new file mode 100644 index 0000000..8c05417 --- /dev/null +++ b/node_modules/body/test/index.js @@ -0,0 +1,2 @@ +require('./integration.js'); +require('./unit.js'); diff --git a/node_modules/body/test/integration.js b/node_modules/body/test/integration.js new file mode 100644 index 0000000..7d82c16 --- /dev/null +++ b/node_modules/body/test/integration.js @@ -0,0 +1,105 @@ +var testServer = require("test-server") +var test = require("tape") +var sendJson = require("send-data/json") +var after = require("after") + +var body = require("../index") +var jsonBody = require("../json") +var formBody = require("../form") +var anyBody = require("../any") + +testServer(handleRequest, runTests) + +function handleRequest(req, res) { + function send(err, body) { + if (err) { + return sendJson(req, res, err.message) + } + + sendJson(req, res, body) + } + + if (req.url === "/body") { + body(req, res, {}, send) + } else if (req.url === "/form") { + formBody(req, res, send) + } else if (req.url === "/json") { + jsonBody(req, {}, send) + } else if (req.url === "/any") { + anyBody(req, send) + } +} + +function runTests(request, done) { + test("body works", function (t) { + t.end = after(2, t.end.bind(t)) + testBody("/body", request, t) + + request({ + uri: "/any", + body: "foo" + }, function (err, res, body) { + t.equal(err, null) + t.equal(JSON.parse(body), "Could not parse content type header: ") + t.end() + }) + }) + + test("form works", function (t) { + t.end = after(2, t.end.bind(t)) + testFormBody("/form", request, t) + testFormBody("/any", request, t) + }) + + test("json works", function (t) { + t.end = after(2, t.end.bind(t)) + testJsonBody("/json", request, t) + testJsonBody("/any", request, t) + }) + + .on("end", done) +} + +function testBody(uri, request, t) { + request({ + uri: uri, + body: "foo" + }, function (err, res, body) { + t.equal(err, null, "error is not null") + + console.log("body", body, JSON.parse(body)) + t.equal(JSON.parse(body), "foo", "body is incorrect") + + t.end() + }) +} + +function testFormBody(uri, request, t) { + request({ + uri: uri, + form: { + foo: "bar" + } + }, function (err, res, body) { + t.equal(err, null, "error is not null") + + t.equal(JSON.parse(body).foo, "bar", "body is incorrect") + + t.end() + }) +} + +function testJsonBody(uri, request, t) { + request({ + uri: uri, + json: { + foo: "bar" + } + }, function (err, res, body) { + t.equal(err, null, "error is not null") + + t.equal(body.foo, "bar", "body is incorrect") + + t.end() + }) +} diff --git a/node_modules/body/test/unit.js b/node_modules/body/test/unit.js new file mode 100644 index 0000000..33c2811 --- /dev/null +++ b/node_modules/body/test/unit.js @@ -0,0 +1,60 @@ +var after = require('after'); +var body = require('../index.js'); +var hammock = require('hammock'); +var test = require('tape'); + +test('caching works', function t(assert) { + var request = hammock.Request({ + method: 'GET', + headers: { + 'Content-Type': 'application/json' + }, + url: '/somewhere' + }); + var response = hammock.Response(); + + var done = after(2, assert.end.bind(assert)); + + body(request, response, { cache: true }, function onBody(err, body) { + assert.equal(body, 'thisbody', 'raw body has been set'); + assert.pass('body is parsed'); + done(); + }); + + request.on('end', function() { + body(request, response, { cache: true }, function onBody(err, body) { + assert.equal(body, 'thisbody', 'cached body is provided'); + assert.pass('body is parsed'); + done(); + }); + }); + + request.end('thisbody'); +}); + +test('parallel caching works', function t(assert) { + var request = hammock.Request({ + method: 'GET', + headers: { + 'Content-Type': 'application/json' + }, + url: '/somewhere' + }); + request.end('thisbody'); + var response = hammock.Response(); + + var done = after(5, function() { + process.nextTick(function() { + assert.equal(request.listeners('rawBody').length, 0, 'rawBody listeners cleared'); + assert.end(); + }); + }); + + for (var i = 0; i < 5; ++i) { + body(request, response, { cache: true }, function onBody(err, body) { + assert.equal(body, 'thisbody', 'raw body has been set'); + assert.pass('body is parsed'); + done(); + }); + } +}); |