diff options
author | Florian Dold <florian.dold@gmail.com> | 2020-08-19 20:56:10 +0530 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2020-08-19 20:56:40 +0530 |
commit | d9b73a30c1ce67f611f9d605bdf163c3e868f2c2 (patch) | |
tree | ffdbf9d5e1556df5d1a57a8870fa8057c7ba4ef5 /packages/taler-integrationtests/src/faultInjection.ts | |
parent | 082498b20d2a73009bb4193cd95ab409159fb972 (diff) | |
download | wallet-core-d9b73a30c1ce67f611f9d605bdf163c3e868f2c2.tar.xz |
test case for /paid API, implement fault-injected merchant
Diffstat (limited to 'packages/taler-integrationtests/src/faultInjection.ts')
-rw-r--r-- | packages/taler-integrationtests/src/faultInjection.ts | 41 |
1 files changed, 41 insertions, 0 deletions
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; + } +} |