aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-harness/src/harness/harness.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2023-02-13 13:15:47 +0100
committerFlorian Dold <florian@dold.me>2023-02-13 13:15:47 +0100
commit22cb8adaa6d9584ad7638b9019b6d0c3eb7158bf (patch)
tree53544a96cca4bafd9b284f53a960585e20d74d0c /packages/taler-harness/src/harness/harness.ts
parent79b77a0c3c5a9a07d22c276a63ed81eb30507eba (diff)
downloadwallet-core-22cb8adaa6d9584ad7638b9019b6d0c3eb7158bf.tar.xz
wallet-core,harness: introduce reserveIsReady flag, test tx lifeycle
Diffstat (limited to 'packages/taler-harness/src/harness/harness.ts')
-rw-r--r--packages/taler-harness/src/harness/harness.ts47
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",