UNPKG

@coolio/http

Version:
47 lines 2.1 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import isObject from 'lodash/isObject'; import isNil from 'lodash/isNil'; import { createHttpResponse } from '../httpResponse'; import { sleep } from '../helpers/sleep.helper'; import { ContentType } from '../contentType'; export const handleRequest = (code, body, contentType = ContentType.TEXT) => { if (isObject(body)) { body = JSON.stringify(body); contentType = contentType || ContentType.JSON; } else if (!isNil(body)) { body = String(body); } return Promise.resolve(createHttpResponse({ body, headers: { 'X-Is-Mock': 'true', 'Content-Type': contentType, 'Content-Length': String(body && body.length), }, status: code, })); }; export const mockRequestHandler = (mockOptions) => { let lastRequest; const handler = (requestOptions) => __awaiter(void 0, void 0, void 0, function* () { yield sleep(Math.random() * 5); lastRequest = requestOptions; const endpoint = mockOptions.endpoints.find(endpoint => new RegExp(endpoint.match).test(requestOptions.url)); if (!endpoint) { return Promise.reject(new Error(`Mock not provided for URI: ${requestOptions.url}`)); } return yield endpoint.handler(requestOptions); }); handler.lastRequest = () => lastRequest; return handler; }; //# sourceMappingURL=mock.requestHandler.js.map