| 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() |
| }) |
| } |