From d9b73a30c1ce67f611f9d605bdf163c3e868f2c2 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 19 Aug 2020 20:56:10 +0530 Subject: test case for /paid API, implement fault-injected merchant --- .../taler-integrationtests/src/faultInjection.ts | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'packages/taler-integrationtests/src/faultInjection.ts') diff --git a/packages/taler-integrationtests/src/faultInjection.ts b/packages/taler-integrationtests/src/faultInjection.ts index 46ab1c5fe..a85b1dd7d 100644 --- a/packages/taler-integrationtests/src/faultInjection.ts +++ b/packages/taler-integrationtests/src/faultInjection.ts @@ -30,7 +30,15 @@ import { ExchangeService, BankService, ExchangeServiceInterface, + MerchantServiceInterface, + MerchantService, + PrivateOrderStatusQuery, } from "./harness"; +import { + PostOrderRequest, + PostOrderResponse, + MerchantOrderPrivateStatusResponse, +} from "./merchantApiTypes"; export interface FaultProxyConfig { inboundPort: number; @@ -220,3 +228,36 @@ export class FaultInjectedExchangeService implements ExchangeServiceInterface { this.port = proxyInboundPort; } } + +export class FaultInjectedMerchantService implements MerchantServiceInterface { + baseUrl: string; + port: number; + faultProxy: FaultProxy; + + get name(): string { + return this.innerMerchant.name; + } + + private innerMerchant: MerchantService; + private inboundPort: number; + + constructor( + t: GlobalTestState, + m: MerchantService, + proxyInboundPort: number, + ) { + this.innerMerchant = m; + this.faultProxy = new FaultProxy(t, { + inboundPort: proxyInboundPort, + targetPort: m.port, + }); + this.faultProxy.start(); + this.inboundPort = proxyInboundPort; + } + + makeInstanceBaseUrl(instanceName?: string | undefined): string { + const url = new URL(this.innerMerchant.makeInstanceBaseUrl(instanceName)); + url.port = `${this.inboundPort}`; + return url.href; + } +} -- cgit v1.2.3