diff options
Diffstat (limited to 'packages/taler-harness/src/harness/faultInjection.ts')
-rw-r--r-- | packages/taler-harness/src/harness/faultInjection.ts | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/packages/taler-harness/src/harness/faultInjection.ts b/packages/taler-harness/src/harness/faultInjection.ts index 4c3d0c123..f4d7fc4b9 100644 --- a/packages/taler-harness/src/harness/faultInjection.ts +++ b/packages/taler-harness/src/harness/faultInjection.ts @@ -47,6 +47,10 @@ export interface FaultInjectionRequestContext { requestHeaders: Record<string, string | string[] | undefined>; requestBody?: Buffer; dropRequest: boolean; + // These are only used when the request is dropped + substituteResponseBody?: Buffer; + substituteResponseStatusCode?: number; + substituteResponseHeaders?: Record<string, string | string[] | undefined>; } export interface FaultInjectionResponseContext { @@ -101,7 +105,18 @@ export class FaultProxy { } if (faultReqContext.dropRequest) { - res.destroy(); + if (faultReqContext.substituteResponseStatusCode) { + const statusCode = faultReqContext.substituteResponseStatusCode; + res.writeHead( + statusCode, + http.STATUS_CODES[statusCode], + faultReqContext.substituteResponseHeaders, + ); + res.write(faultReqContext.substituteResponseBody); + res.end(); + } else { + res.destroy(); + } return; } |