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

1.0.1 • Public • Published

zeit-now-node-server

An unofficial package allowing you to create Node http.Server instances of your Zeit @now/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 zeit-now-node-server

Supported API

This package has taken the code from the official @now/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 'zeit-now-node-server';
import listen from 'test-listen';
import axios from 'axios';
import helloLambda from './api/hello';
 
let server;
let url;
 
beforeAll(() => {
  server = createServer(routeUnderTest);
  url = await listen(server);
});
 
afterAll(() => {
  server.close();
});
 
it('should return the expected response' async () => {
  const response = await axios.get(url);
  expect(response.data).toBe('Hello world');
});

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 'zeit-node-now-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 zeit-now-node-server

Weekly Downloads

3

Version

1.0.1

License

MIT

Unpacked Size

35.7 kB

Total Files

12

Last publish

Collaborators

  • ctrlplusb