1.0.3 • Published 6 years ago

https-context v1.0.3

Weekly downloads
1
License
MIT
Repository
github
Last release
6 years ago

https-context

npm version

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