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

hyper63/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

Languages

  • TypeScript 93.4%
  • JavaScript 6.6%