Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | 1x 1x 1x 1x 62x 62x 111x 111x 2x 111x 111x 3x 108x 108x 108x 106x 108x 108x 7x 7x 7x 7x 7x 7x 7x 101x | import {
RequestInit,
Response,
ResponseInit,
} from "node-fetch";
import { IRequestContext } from "./httpClient";
import RequestResponseLogEntry from "./requestResponseLogEntry";
import Logger from "./logger";
const log: Logger = new Logger();
export default class FakeServer {
public fakeResponses: RequestResponseLogEntry[] = [];
public constructor(fakeResponses: RequestResponseLogEntry[]) {
this.fakeResponses = fakeResponses;
}
public async getFakeHttpResponse(url: string, requestInit: RequestInit, expectedHttpStatusCode: number[], context: IRequestContext): Promise<Response> {
log.debug("getFakeHttpResponse");
if (!requestInit.method) {
requestInit.method = "UNDEFINED";
}
const rrEntry: RequestResponseLogEntry | undefined = this.fakeResponses.shift();
if (!rrEntry) {
throw new Error(`error providing fake http response. No fake response available`);
}
const responseInit: ResponseInit = {
status: rrEntry.response.status,
};
const response: Response = new Response(rrEntry.response.body, responseInit);
if (rrEntry.response.contentType) {
response.headers.append("Content-Type", rrEntry.response.contentType);
}
Iif (rrEntry.response.contentLocation) {
response.headers.append("Content-Location", rrEntry.response.contentLocation);
}
if (expectedHttpStatusCode.indexOf(response.status) === -1) {
log.debug("getHttpResponse unexpected status response ", response.status + " " + response.statusText);
log.debug("getHttpResponse description ", context.description);
log.debug("getHttpResponse expected ", expectedHttpStatusCode.join(","));
log.debug("getHttpResponse headers ", JSON.stringify(response.headers, null, 4));
log.debug("getHttpResponse request body ", requestInit.body);
log.debug("getHttpResponse text ", await response.text());
throw new Error(`HTTP response status ${response.status} not expected. Expected status: ${expectedHttpStatusCode.join(",")} - status text: ${response.statusText}`);
}
return response;
}
}
|