https://github.com/artdecocode/https-context
A Zoroaster test context that sets up an HTTP and self-signed HTTPS servers.
https://github.com/artdecocode/https-context
Last synced: 5 months ago
JSON representation
A Zoroaster test context that sets up an HTTP and self-signed HTTPS servers.
- Host: GitHub
- URL: https://github.com/artdecocode/https-context
- Owner: artdecocode
- License: mit
- Created: 2018-07-02T14:32:09.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-09-24T12:41:23.000Z (over 7 years ago)
- Last Synced: 2025-06-30T07:17:43.652Z (7 months ago)
- Language: JavaScript
- Homepage: https://contexttesting.com
- Size: 33.2 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# https-context
[](https://npmjs.org/package/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.
```sh
yarn add -DE https-context
```
## Table Of Contents
- [Table Of Contents](#table-of-contents)
- [HTTP API](#http-api)
* [`response(): string|buffer`](#response-stringbuffer)
* [`host(): string`](#host-string)
* [`url(): string`](#url-string)
* [`setResponse(data: string|Buffer)`](#setresponsedata-stringbuffer-void)
* [`setHeaders(headers: Object)`](#setheadersheaders-object-void)
* [`setContentType(contentType: string)`](#setcontenttypecontenttype-string-void)
* [`state(): State`](#state-state)
* [`State` Type](#state-type)
* [called](#called)
* [headers](#headers)
* [postData](#postdata)
## HTTP API
The context can be used by setting it in a `zoroaster` test case:
```javascript
import { ok, deepEqual } from 'zoroaster/assert'
import rqt from 'rqt'
import { HTTPContext } from 'https-context'
/** @type {Object.} */
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).
### `State` Type
Property
Type
Description
Example
called
number
The number of times the server was called. Starts with 0.
0, 2, 3
headers
object
Request headers used previously.
{}
postData
string
The data sent with the request via any method other than `POST`.
Hello World
---
(c) [Art Deco Code][1] 2018
[1]: https://artdeco.bz