shot

Injects a fake HTTP request/response into your node server logic.

Latest Version: 5.0.0
hapi-family
Installation:

npm: npm install @hapi/shot

yarn: yarn add @hapi/shot

Module Status:
Version License Node Dependencies Travis End of Life
5.0.0
hapi helmet github logo
BSD 12 Dependency Status Build Status
3.5.0
hapi helmet github logo
Commercial 10, 8, 6 Dependency Status Build Status

Introduction

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).

Example

const Http = require('http');
const Shot = require('@hapi/shot');


const internals = {};


internals.main = async function () {

    const dispatch = function (req, res) {

        const reply = 'Hello World';
        res.writeHead(200, { 'Content-Type': 'text/plain', 'Content-Length': reply.length });
        res.end(reply);
    };

    const server = Http.createServer(dispatch);

    const res = await Shot.inject(dispatch, { method: 'get', url: '/' });
    console.log(res.payload);
};


internals.main();

Note how server.listen is never called.