12345678910111213141516171819202122 |
- const Stream = require("stream");
- const Koa = require("koa");
- const mockContext = (req, res, app) => {
- const socket = new Stream.Duplex();
- req = Object.assign({ headers: {}, socket }, Stream.Readable.prototype, req);
- res = Object.assign({ _headers: {}, socket }, Stream.Writable.prototype, res);
- req.socket.remoteAddress = req.socket.remoteAddress || "127.0.0.1";
- req.url = "";
- app = app || new Koa();
- res.getHeader = k => res._headers[k.toLowerCase()];
- res.setHeader = (k, v) => {
- res._headers[k.toLowerCase()] = v;
- return v;
- };
- res.removeHeader = k => delete res._headers[k.toLowerCase()];
- return app.createContext(req, res);
- };
- mockContext.request = (req, res, app) => mockContext(req, res, app).request;
- mockContext.response = (req, res, app) => mockContext(req, res, app).response;
- module.exports = mockContext;
|