Thanks to visit codestin.com
Credit goes to github.com

Skip to content

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

License

Notifications You must be signed in to change notification settings

ctrlplusb/vercel-node-server

Repository files navigation

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%

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published