Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/LvChengbin/koa-sham
To send fake requests to a Koa application without starting a http server.
https://github.com/LvChengbin/koa-sham
fake http koa mock request sham test
Last synced: 3 months ago
JSON representation
To send fake requests to a Koa application without starting a http server.
- Host: GitHub
- URL: https://github.com/LvChengbin/koa-sham
- Owner: LvChengbin
- License: mit
- Created: 2018-09-02T15:01:06.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-03T18:40:15.000Z (about 2 years ago)
- Last Synced: 2024-04-26T21:21:54.501Z (9 months ago)
- Topics: fake, http, koa, mock, request, sham, test
- Language: JavaScript
- Size: 2.98 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# koa-sham
To send fake request to a Koa application without starting a http server.
**Sending `multipart` data will be supported later.**
## Installation
```js
$ npm i koa-sham --save
```## Usage
```js
const Koa = require( 'koa' );
const sham = require( 'koa-sham' );const app = new Koa();
app.use( ctx => {
ctx.body = { status : 1 };
} );sham( app, ( err, res, body ) => {
console.log( body ); // { status : 1 }
} );sham( app, {
qs : {
x : 1
}
}, ( err, res, body ) => {
console.log( body ); // { status : 1 }
} );sham( app, '/path', { https: true }, ( err, res, body ) => {
console.log( body ); // { status : 1 }
} );sham( app, {
method : 'POST',
body : {
x : 1
}
}, ( err, res, body ) => {
console.log( body ); // { status : 1 }
} );
```### Promise
```js
sham( app, { promise : true } ).then( data => {
console.log( data );
} );
```### Streaming
```js
sham( app ).pipe( process.stdout );
```### API
#### sham( app, [ url, options, callback ] )
Returns a `Readable Stream` by default, but can be changed by using `{ promise : true }` in `options`.
**app**
The instance of `Koa` application.
**url**
Type: `String`
The `URL` or `PATH` the you want to request. The host of the URL will be set as `127.0.0.1` by default. The protocol will be set to `http` if `options.https` is not `true`. The default port is `80` and it can be changed with `options.port`.
If the protocol of the URL is `https`, the request will be set to `secure`, even thought the `options.https` is not set to `true`.
**options**
Type: `Object`
Options for the fake request.
- **remoteAddress** `String`
The remote IP address, `127.0.0.1` by default.- **host** `String`
The host of URL, this item will be ignored if the passed `URL` contains it's host.- **port** `Number`
The port of URL, this item will be ignored if the passed `URL` contains it's host.- **https** `Boolean`
To set the request to `secure`, this item will be ignored if the passed `URL` contains it's protocol and is not 'https'.- **method** `String`
The request method- **qs** `Object`
The query string, should be an object.- **headers** `Object`
The headers of the request.- **cookies** `Object`
The cookies that will be set while sending request, it will overwrite the same cookie which is also in `headers`.- **body** `Object` `String`
The request body for `POST` or `PUT` request.- **promise** `Boolean`
If `promise` is true, the function will return a `Promise` object.- **resolveWithFullResponse `Boolean`
By setting this option to `true`, the returned `promise` will use the full response data as it's value.