https://github.com/kyleross/test-server
A simple Koa server to respond to any URL and provide the results
https://github.com/kyleross/test-server
Last synced: over 1 year ago
JSON representation
A simple Koa server to respond to any URL and provide the results
- Host: GitHub
- URL: https://github.com/kyleross/test-server
- Owner: KyleRoss
- License: mit
- Created: 2019-03-04T17:14:42.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-03-04T21:06:07.000Z (over 7 years ago)
- Last Synced: 2024-10-30T00:43:21.433Z (over 1 year ago)
- Language: JavaScript
- Size: 11.7 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Test Server
A simple Koa server to respond to any URL and provide the results. Useful for debugging or testing webhook-style responses locally. This is a development server which is not made to run in production.
## Install
The package comes with a command line interface as well as a programmatic interface.
### CLI
```
npm install -g @kylerross/test-server
```
### API
```
npm install --save @kylerross/test-server
```
## CLI Usage
To start the server, run the following command:
```
test-server
```
#### Options
```
-p NUM, --port=NUM
Port number to bind the server to.
--disable-log
Disables logging request information to the console.
--disable-body
Disables responding to requests with data in the response body.
-b TEXT, --custom-body=TEXT
When the body is enabled, override the default sent JSON with the provided text.
--body-fields=LIST
Comma-seperated list of fields to include in the response body.
Defaults to: url, method, body, query, headers, response, app
--log-fields=LIST
Comma-seperated list of fields to include in the log message in the console.
Defaults to: body, query, headers
--no-colors
Disables colors in the console-logged message.
-v, --version
Display the CLI version and exit.
-h, --help
Display help and exit.
```
## API Documentation
To use the programmatic API:
```js
const testServer = require('@kylerross/test-server');
// Start the server with or without options
testServer({
//... options
});
```
### Options
The following options are available to be passed into `testServer()`.
| Option | Type | Description | Default |
|---------------|---------------------|----------------------------------------------------------------------------------|--------------------------------------------------------------------|
| port | Number | The port to bind the server to. | `8000` |
| ignorePaths | Array<Regexp> | Path regexps to ignore requests to. | `[/favicon/i, /robots\.txt/i]` |
| enableLogging | Boolean | Enables logging request data to the console. | `true` |
| enableBody | Boolean | Enables returning request data in the response as JSON or value of `customBody`. | `true` |
| customBody | String | Return the provided text as the body instead of the request data JSON. | `null` |
| colors | Boolean | Enables colors when logging to the console. | `true` |
| bodyFields | Array<String> | List of fields to display in the response body. | `['url', 'method', 'body', 'query', 'headers', 'response', 'app']` |
| logFields | Array<String> | List of fields to display in the log to console. | `['body', 'query', 'headers']` |
| parserTypes | Array<String> | List of parser types to allow for bodyparser. Defaults to all. | `['json', 'form', 'text']` |
| jsonLimit | String | The size limit for parsing JSON bodies. | `1mb` |
| textLimit | String | The size limit for parsing Text bodies. | `1mb` |
| formLimit | String | The size limit for parsing Form bodies. | `56kb` |
| strictJSON | Boolean | Strict JSON mode accepts arrays and objects only. | `true` |
#### Allowed Fields
The following are the available fields that can be passed into `bodyFields` and `logFields`:
- `url` - The incoming url path (ex. ctx.originalUrl)
- `method` - The request method (ex. ctx.method)
- `body` - The parsed incoming body from koa-bodyparser (ex. ctx.request.body)
- `query` - The parsed query string from koa-qs (ex. ctx.query)
- `headers` - Incoming headers object (ex. ctx.request.headers)
- `response` - The response object from Node (ex. ctx.response)
- `app` - The app object from Koa (ex. ctx.app)
---
## License
MIT