Package Exports
- shot
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (shot) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme

Injects a fake HTTP request/response into a node HTTP server for simulating server logic, writing tests, or debugging. Does not use a socket connection so can be run against an inactive server (server not in listen mode).
Lead Maintainer: Matt Harrison
Example
// Load modules
var Http = require('http');
var Shot = require('shot');
// Declare internals
var internals = {};
internals.main = function () {
var dispatch = function (req, res) {
var reply = 'Hello World';
res.writeHead(200, { 'Content-Type': 'text/plain', 'Content-Length': reply.length });
res.end(reply);
};
var server = Http.createServer(dispatch);
Shot.inject(dispatch, { method: 'get', url: '/' }, function (res) {
console.log(res.payload);
});
};
internals.main();Note how server.listen is never called.
Shot.inject(dispatchFunc, options, callback)
Injects a fake request into an HTTP server.
dispatchFunc- listener function. The same as you would pass toHttp.createServerwhen making a node HTTP server. Has the signaturefunction (req, res)where:req- a simulated request object. Inherits fromStream.Readable.res- a simulated response object. Inherits from node'sHttp.ServerResponse.
options- request options object where:url- a string specifying the request URL.method- a string specifying the HTTP request method, defaulting to'GET'.headers- an optional object containing request headers.remoteAddress- an optional string specifying the client remote address. Defaults to'127.0.0.1'.payload- an optional request payload. Can be a string, Buffer or object.simulate- an object containing flags to simulate various conditions:end- indicates whether the request will fire anendevent. Defaults toundefined, meaning anendevent will fire.split- indicates whether the request payload will be split into chunks. Defaults toundefined, meaning payload will not be chunked.error- whether the request will emit anerrorevent. Defaults toundefined, meaning noerrorevent will be emitted. If set totrue, the emitted error will have a message of'Simulated'.close- whether the request will emit acloseevent. Defaults toundefined, meaning nocloseevent will be emitted.
callback- the callback function using the signaturefunction (res)where:res- a response object where:raw- an object containing the raw request and response objects where:req- the simulated request object.req- the simulated response object.
headers- an object containing the response headers.statusCode- the HTTP status code.payload- the payload as a UTF-8 encoded string.rawPayload- the raw payload as a Buffer.
