wiremock-mapper
v0.7.0
Published
DSL for setting up WireMock mappings.
Downloads
418
Readme
wiremock-mapper
DSL for setting up WireMock mappings
Installation
npm install wiremock-mapper
Configuring
import { Configuration } from 'wiremock-mapper';
Configuration.wireMockBaseUrl = 'http://localhost:8080/some_path_prefix'; // default is 'http://localhost:8080'
Creating a global mapping
Global mappings are a way to predefine part o
import { Configuration } from 'wiremock-mapper';
Configration.createGlobalMapping((request, response) => {});
Reset global mapping
import { Configration } from 'wiremock-mapper';
Configration.reset();
Create a mapping
Import the library
import { WireMockMapper } from 'wiremock-mapper';
Mappings are created with WireMockMapper.createMapping()
which takes a function argument defining the mock behavior. It asyncronously sends the configuration to the WireMock server.
await WireMockMapper.createMapping((req, res) => {});
Define matching parameters
All request modifiers are set from req
provided by createMapping
, and return an instance of RequestBuilder
, MatchBuilder
, or UrlMatchBuilder
. These can be chained together to form a complete request expectation.
It should read like a sentence when set up properly.
await WireMockMapper.createMapping((req, res) => {
req.isAGet.withUrlPath.matching('/my/.*/path');
});
Interfaces
RequestBuilder
| Method | Argument(s) | Effect | Returns |
| ---------------- | ------------------------------------ | --------------------------------------- | ----------------- |
| isAGet
| none | sets request method to GET
| RequestBuilder
|
| isAPost
| none | sets request method to POST
| RequestBuilder
|
| isAPut
| none | sets request method to PUT
| RequestBuilder
|
| isADelete
| none | sets request method to DELETE
| RequestBuilder
|
| isAHead
| none | sets request method to HEAD
| RequestBuilder
|
| isAnOptions
| none | sets request method to OPTIONS
| RequestBuilder
|
| isATrace
| none | sets request method to TRACE
| RequestBuilder
|
| isAnyVerb
| none | sets request method to ANY
| RequestBuilder
|
| withBody
| none | sets request body | RequestBuilder
|
| withBasicAuth
| username: string, password: string
| sets basic auth | RequestBuilder
|
| withUrl
| none | sets expected URL | UrlMatchBuilder
|
| withUrlPath
| none | sets URL path match to urlPathPattern
| UrlMatchBuilder
|
| withCookie
| key: string
| sets request cookie | MatchBuilder
|
| withHeader
| key: string
| sets request header | MatchBuilder
|
| withQueryParam
| key: string
| sets request query parameter | MatchBuilder
|
UrlMatchBuilder
| Method | Arguments | Effect | Returns |
| ---------- | ---------------- | ------------------------------- | ---------------- |
| equalTo
| url: string
| Matches text given | RequestBuilder
|
| matching
| regexp: string
| Matches with regular expression | RequestBuilder
|
MatchBuilder
| Method | Argument(s) | Returns |
| ------------------ | -------------------------------------------------------------------- | ---------------- |
| absent
| none | RequestBuilder
|
| containing
| value: string
| RequestBuilder
|
| equalTo
| value: string
| RequestBuilder
|
| equalToJson
| json: any, ignoreArrayOrder: boolean, ignoreExtraElements: boolean
| RequestBuilder
|
| equalToXml
| xml: string
| RequestBuilder
|
| macthing
| value: string
| RequestBuilder
|
| matchingJsonPath
| path: string
| RequestBuilder
|
| matchingXPath
| xpath: string
| RequestBuilder
|
| notMatching
| value: string
| RequestBuilder
|
Define response behavior
Responses are created from res
provided by WireMockMapper.createMapping()
await WireMockMapper.createMapping((req, res) => {
res
.withJsonBody({
someKey: 'theValue',
otherKey: 'otherValue'
})
.withStatus(200)
.withStatusMessage('ok');
});
Interface
ResponseBuilder
| Method | Argument(s) | Returns |
| ------------------- | ------------------------- | ----------------- |
| withBody
| value: string
| ResponseBuilder
|
| withDelay
| milliseconds: number
| ResponseBuilder
|
| withHeader
| key: string
| ResponseBuilder
|
| withJsonBody
| value: object
| ResponseBuilder
|
| withStatus
| statusCode: object
| ResponseBuilder
|
| withStatusMessage
| statusMessage: string
| ResponseBuilder
|
| withTransformer
| transformerName: string
| ResponseBuilder
|
Example
await WireMockMapper.createMapping((req, res) => {
req.isAGet.withUrlPath.equalTo('/my/api/path');
res
.withJsonBody({
someKey: 'theValue',
otherKey: 'otherValue'
})
.withStatus(200)
.withStatusMessage('ok');
});
Get Requests Received
Get all requests
await WireMockMapper.getRequests();
Get all requests for a given stub id
await WireMockMapper.getRequests({ stubId: 'some_stub_id' });
The interface for the returned object can be found here.