https-context
v1.0.3
Published
A Zoroaster test context that sets up an HTTP and self-signed HTTPS servers.
Downloads
55
Maintainers
Readme
https-context
https-context
is a Zoroaster test context that sets up an HTTP and self-signed HTTPS servers. It can be used in testing packages that make requests. A new server will be installed for each test case, and all connections open to the server will be closed in the destroy method. This ensures that every gets gets a unique http server to be tested against, which is automatically destroyed so that the developers don't need to worry about implementing the tear-down.
yarn add -DE https-context
Table Of Contents
HTTP API
The context can be used by setting it in a zoroaster
test case:
import { ok, deepEqual } from 'zoroaster/assert'
import rqt from 'rqt'
import { HTTPContext } from 'https-context'
/** @type {Object.<string, (c: HTTPContext)>} */
const T = {
context: HTTPContext,
async 'starts the context'({ url }) {
ok(url)
},
async 'responds to the message'({ url, setResponse, setContentType }) {
const d = { hello: 'world' }
setResponse(JSON.stringify(d))
setContentType('application/json')
const res = await rqt(url)
deepEqual(res, d)
},
async 'sends headers'({ url, state, host }) {
const headers = {
'user-agent': 'node.js',
}
await rqt(url, {
headers,
})
ok(state.called)
deepEqual(state.headers, {
host,
connection: 'close',
...headers,
})
},
}
export default T
response(): string|buffer
Returns what the response was set to (default OK
).
host(): string
The host of the server, e.g., 127.0.0.1:49629
.
url(): string
Returns the server url
, such as http://127.0.0.1:49629
.
setResponse(
data: string|Buffer,
): void
Sets the response with which the server will end the request. OK
by default.
setHeaders(
headers: Object,
): void
Sets the headers which are sent back to the client.
setContentType(
contentType: string,
): void
Sets the content type of the response. If not set, text/plain
will be used by default.
state(): State
Get the state of the context, according to the State type.
State
Type
(c) Art Deco Code 2018