Create a server for your Vercel Node lambdas in order to test them

Usage no npm install needed!

<script type="module">
  import vercelNodeServer from '';



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


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(() => {

it('should return the expected response', async () => {
  const response = await axios.get(url, { params: { name: 'Pearl' } });
  expect('Hello Pearl');

Running a local server

Given the following lambda.

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

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

Then you can then make requests against it.

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