test-client
is a small HTTP assertion library.
'use strict'
const http = require('http')
const Client = require('test-client')
async function test () {
const server = http.createServer((request, response) => {
response.setHeader('content-type', 'application/json')
response.end(JSON.stringify({x: 2}))
})
const client = new Client(server)
const response = await client
.get('/test')
.type('json')
.accept('json')
.set('user-agent', 'smith')
.send({x: 1})
response
.assert(200, {x: 2})
.assert('content-type', /json/)
}
npm install test-client
app
can be a koa/express app, an http.Server
, or anything
with a .listen()
method.
Returns a Request
with the corresponding path
and method
. method
can be
any of the values in http.METHODS
.
There is a convenience method proxying .request(…)
for each method in
http.METHODS
. Returns a Request
.
A CookieJar
instance for storing cookies.
Set a request header by key and value. Returns the request.
Set headers from an object containing header key/value pairs. Returns the request.
Set the accept
header from a content-type or extension via
mime-types
. Returns the request.
Set the content-type
header from a content-type or extension via
mime-types
. Returns the request.
Send the request with no body. Returns a promise that resolves as a Response
.
Send the request with the specified body
. If body
is an object, it's JSON
encoded and content-type
is set to application/json
. If body
is a stream,
it's piped to the request. Returns a promise that resolves as a Response
.
The numeric status code from the response.
An object containing header values from the response.
If the response is JSON as indicated by the content-type
, the decoded
response. Otherwise, the response string.
Assert the HTTP status value. Returns the response.
Assert the repsonse body value. Returns the response.
Assert that the response body matches a RegExp. Returns the response.
Assert the response body as a JSON object. Returns the response.
Assert the HTTP status and response body value. Returns the response.
Assert the HTTP status value and the response body matches a RegExp. Returns the response.
Assert an HTTP header value. Returns the response.
Assert an HTTP header matches a RegExp. Returns the response.