koa-sham
v0.0.11
Published
To send fake request to a Koa application without starting a http server. So that, you can require a Koa app into your code.
Downloads
1,114
Maintainers
Readme
koa-sham
To send fake request to a Koa application without starting a http server.
Sending multipart
data will be supported later.
Installation
$ npm i koa-sham --save
Usage
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
sham( app, { promise : true } ).then( data => {
console.log( data );
} );
Streaming
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 passedURL
contains it's host.port
Number
The port of URL, this item will be ignored if the passedURL
contains it's host.https
Boolean
To set the request tosecure
, this item will be ignored if the passedURL
contains it's protocol and is not 'https'.method
String
The request methodqs
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 inheaders
.body
Object
String
The request body forPOST
orPUT
request.promise
Boolean
Ifpromise
is true, the function will return aPromise
object.**resolveWithFullResponse
Boolean
By setting this option totrue
, the returnedpromise
will use the full response data as it's value.