wiremock-mapper
TypeScript icon, indicating that this package has built-in type declarations

0.3.0 • Public • Published

Node.js CI Code Climate Test Coverage npm version

wiremock-mapper

DSL for setting up WireMock mappings

Installation

npm install wiremock-mapper

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 res 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.

Readme

Keywords

Package Sidebar

Install

npm i wiremock-mapper

Weekly Downloads

22

Version

0.3.0

License

MIT

Unpacked Size

146 kB

Total Files

54

Last publish

Collaborators

  • ike18t