1.1.9 • Published 4 months ago

@natlibfi/fixugen-http-server v1.1.9

Weekly downloads
-
License
LGPL-3.0+
Repository
github
Last release
4 months ago

Generate unit tests for HTTP servers with fixugen

NPM Version Node Version

Generates unit tests with fixugen and chai-http. Starts a HTTP server which is tested with generic HTTP request and response expectations.

Uses fixugen's useMetadataFile so your fixture directories must contain metadata.json file.

Usage

import generateTests from '@natlibfi/fixugen-http-server';
import startApp from './app';

generateTests({
  callback: () => startApp(),
  path: [__dirname, '..', '..', 'test-fixtures', 'app']
});

Configuration

An array property requests must be present in metadata.json file. It supports the following properties:

  • status: HTTP status code (Number). Mandatory.
  • method: HTTP method in lowercase. Mandatory.
  • path: URL path. Defaults to /
  • requestHeaders: An object representing requests headers.
  • responseHeaders: An object representing response headers.

This configuration is also passed to the callback as the property requests.

Request and response payloads

The fixture directory for each unit test can have request- and response payload fixtures which must match the following filename pattern: /^request[0-9]+ /^response[0-9]+

Formatting the response

Pass a callback to the exported function to format response headers and payload:

generateTests({
  formatResponse,
  callback: () => startApp(),
  path: [__dirname, '..', '..', 'test-fixtures', 'app']
});

function formatResponse(headers, payload) {
  const newHeaders = doSomethingWithHeaders();
  return { payload, headers: newHeaders };
}

Where [0-9]+ denotes the index number of the fixture (Requests and responses are mocked in that order).

License and copyright

Copyright (c) 2020, 2022-2023 University Of Helsinki (The National Library Of Finland)

This project's source code is licensed under the terms of GNU Lesser General Public License Version 3 or any later version.

1.1.9-alpha.1

4 months ago

1.1.9

4 months ago

1.1.8-alpha.1

5 months ago

1.1.8

5 months ago

1.1.7

7 months ago

1.1.7-alpha.1

7 months ago

1.1.6

9 months ago

1.1.6-alpha.1

9 months ago

1.1.4-alpha.1

11 months ago

1.1.5

11 months ago

1.1.4

11 months ago

1.1.2

1 year ago

1.1.2-alpha.3

1 year ago

1.1.2-alpha.1

1 year ago

1.1.2-alpha.2

1 year ago

1.1.1

1 year ago

1.1.0-alpha.1

1 year ago

1.1.0

1 year ago

1.0.5

1 year ago

1.0.5-alpha.1

2 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago