diff options
Diffstat (limited to 'packages/taler-harness/src/harness/harness.ts')
-rw-r--r-- | packages/taler-harness/src/harness/harness.ts | 47 |
1 files changed, 37 insertions, 10 deletions
diff --git a/packages/taler-harness/src/harness/harness.ts b/packages/taler-harness/src/harness/harness.ts index 275592091..0b7ba14cf 100644 --- a/packages/taler-harness/src/harness/harness.ts +++ b/packages/taler-harness/src/harness/harness.ts @@ -1169,6 +1169,29 @@ export class ExchangeService implements ExchangeServiceInterface { return !!this.exchangeWirewatchProc || !!this.exchangeHttpProc; } + /** + * Stop the wirewatch service (which runs by default). + * + * Useful for some tests. + */ + async stopWirewatch(): Promise<void> { + const wirewatch = this.exchangeWirewatchProc; + if (wirewatch) { + wirewatch.proc.kill("SIGTERM"); + await wirewatch.wait(); + this.exchangeWirewatchProc = undefined; + } + } + + async startWirewatch(): Promise<void> { + const wirewatch = this.exchangeWirewatchProc; + if (wirewatch) { + logger.warn("wirewatch already running"); + } else { + this.internalCreateWirewatchProc(); + } + } + async stop(): Promise<void> { const wirewatch = this.exchangeWirewatchProc; if (wirewatch) { @@ -1332,6 +1355,19 @@ export class ExchangeService implements ExchangeServiceInterface { ); } + private internalCreateWirewatchProc() { + this.exchangeWirewatchProc = this.globalState.spawnService( + "taler-exchange-wirewatch", + [ + "-c", + this.configFilename, + "--longpoll-timeout=5s", + ...this.timetravelArgArr, + ], + `exchange-wirewatch-${this.name}`, + ); + } + async start(): Promise<void> { if (this.isRunning()) { throw Error("exchange is already running"); @@ -1360,16 +1396,7 @@ export class ExchangeService implements ExchangeServiceInterface { `exchange-crypto-rsa-${this.name}`, ); - this.exchangeWirewatchProc = this.globalState.spawnService( - "taler-exchange-wirewatch", - [ - "-c", - this.configFilename, - "--longpoll-timeout=5s", - ...this.timetravelArgArr, - ], - `exchange-wirewatch-${this.name}`, - ); + this.internalCreateWirewatchProc(); this.exchangeHttpProc = this.globalState.spawnService( "taler-exchange-httpd", |