Skip to content

Latest commit

 

History

History
143 lines (82 loc) · 3.17 KB

README.md

File metadata and controls

143 lines (82 loc) · 3.17 KB

@chrisdobby/wiremock-js

Release workflow npm version

This is the @chrisdobby/wiremock-js library.

It is designed to give typescript and javascript developers a library to run Wiremock with a familiar API.

The API is based on the jest mocking API so, for instance, you could create a mock for a GET request against the /hello-world path using wm.mock('GET', '/hello-world').mockResponse({ statusCode: 200 }). The full API is listed below.

Installation

To install the package use

npm install @chrisdobby/wiremock-js

Getting started

The package can be imported using

import { wm } from '@chrisdobby/wiremock-js

wiremock-js can either use an existing Wiremock server or will start a docker container running a wiremock server.

To start wiremock-js to use an existing server a url must be passed to the wm.start function

wm.start({ url: 'http://my-wiremock-server' })

To start wiremock-js by running wiremock in docker

wm.start({})

When you have finished call wm.stop() to clear all mappings and, if a docker container was started, shut it down.

To add a single mock response use

wm.mock('GET', '/hello-world').mockResponse({ status: 200 }).map()

API

wm.start([options]) => Promise<void>

Starts a new Wiremock server if required, clears any existing mocks and adds a proxy if required.

options

Type: Object
Default: {}

startup options for the library

url

Type: string
Default: undefined

The url of an existing Wiremock server, if not supplied then a docker container running a server on port 8080 will be started.

port

Type: number
Default: undefined

Specifies a different port to run the docker container on.

proxy

Type: string
Default: undefined

Specifies the url of a proxy to be called for any paths that have no explicit mocks set.

wm.stop() => Promise<void>

Clears any existing mocks and stops the docker container if one was started.

wm.clearAllMocks() => Promise<void>

Clears all existing mocks except the proxy if one was supplied.

wm.mock([httpMethod], [path]) => WmMock

httpMethod

Type: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS'

Specifies the http method that the mock refers to.

path

Type: string

Specifies the path that the mock refers to.

Mock.mockResponse([response])

response

Type: Object

Response object

status

Type: number

The http status code for the response

headers

Type: Object
Default: undefined

The response headers

body

Type: Object
Default: undefined

The response body

Demo

The demo will start up a docker container running Wiremock and perform some sample integration tests using vitest.

To run it ensure the docker daemon is running and run

npm run build
npm run demo