vercel-node-server
TypeScript icon, indicating that this package has built-in type declarations

2.2.1 • Public • Published

vercel-node-server

An unofficial package allowing you to create Node http.Server instances of your Vercel Node lambdas.

Enables you to write unit/integration tests for your lambdas, or to perform manual testing against a local server instance.

npm MIT License Travis Codecov

Installation

npm install vercel-node-server

Supported API

This package has taken the code from the official @vercel/node builder in order to ensure maximum API compatibility. As far as I am aware we have 100% API coverage.

Unit testing your lambdas

In the below example we will make use of a local server in order to perform an integration test against our lambda.

We will be making use of the test-listen package, which accepts a http.Server instance and will return a unique URL based on an available port.

We will also make use of axios in order to make the request against our lambda.

import { createServer } from 'vercel-node-server';
import listen from 'test-listen';
import axios from 'axios';
import helloLambda from './api/hello';
 
let server;
let url;
 
beforeAll(async () => {
  server = createServer(routeUnderTest);
  url = await listen(server);
});
 
afterAll(() => {
  server.close();
});
 
it('should return the expected response', async () => {
  const response = await axios.get(url, { params: { name: 'Pearl' } });
  expect(response.data).toBe('Hello Pearl');
});

Running a local server

Given the following lambda.

const helloLambda = (req, res) => {
  res.send(`Hello ${req.query.name}`);
};

You can create a Node http.Server instance like so.

import { createServer } from 'vercel-node-server';
import helloLambda from './api/hello';
 
const server = createServer(helloLambda);
 
// start listening on port 8000
server.listen(8000);

Then you can then make requests against it.

> curl http://localhost:8000?name=Pearl
Hello Pearl%

Readme

Keywords

none

Package Sidebar

Install

npm i vercel-node-server

Weekly Downloads

47

Version

2.2.1

License

MIT

Unpacked Size

51.5 kB

Total Files

11

Last publish

Collaborators

  • ctrlplusb