wiremock-captain
Version:
A better way to use the WireMock simulator to test your HTTP APIs
54 lines (53 loc) • 1.98 kB
JavaScript
;
// 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;
}