UNPKG

wiremock-captain

Version:

A better way to use the WireMock simulator to test your HTTP APIs

54 lines (53 loc) 1.98 kB
"use strict"; // Copyright (c) WarnerMedia Direct, LLC. All rights reserved. Licensed under the MIT license. // See the LICENSE file for license information. Object.defineProperty(exports, "__esModule", { value: true }); exports.createWireMockResponse = createWireMockResponse; const externalTypes_1 = require("./types/externalTypes"); function createWireMockResponse(response, features) { const { body, headers, status } = response; const mockedResponse = { status, }; const bodyType = features.responseBodyType ?? externalTypes_1.BodyType.Default; if (body) { mockedResponse[bodyType] = body; } mockedResponse.headers = { ...(bodyType === externalTypes_1.BodyType.Default && { 'Content-Type': 'application/json; charset=utf-8', }), ...headers, }; const delay = features.responseDelay; switch (delay?.type) { case externalTypes_1.DelayType.CHUNKED_DRIBBLE: mockedResponse.chunkedDribbleDelay = { numberOfChunks: delay.numberOfChunks, totalDuration: delay.totalDuration, }; break; case externalTypes_1.DelayType.FIXED: mockedResponse.fixedDelayMilliseconds = delay.constantDelay; break; case externalTypes_1.DelayType.LOG_NORMAL: mockedResponse.delayDistribution = { type: 'lognormal', median: delay.median, sigma: delay.sigma, }; break; case externalTypes_1.DelayType.UNIFORM: mockedResponse.delayDistribution = { type: 'uniform', lower: delay.lower, upper: delay.upper, }; break; default: } if (features.responseTransformers && features.responseTransformers.length > 0) { mockedResponse.transformers = features.responseTransformers; } return mockedResponse; }