gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] branch master updated: wallet-cli: benchmarking


From: gnunet
Subject: [taler-wallet-core] branch master updated: wallet-cli: benchmarking
Date: Wed, 20 Oct 2021 13:06:41 +0200

This is an automated email from the git hooks/post-receive script.

dold pushed a commit to branch master
in repository wallet-core.

The following commit(s) were added to refs/heads/master by this push:
     new 589c2a33 wallet-cli: benchmarking
589c2a33 is described below

commit 589c2a338284e038cf03e4c8734671c8f9f8ebda
Author: Florian Dold <florian@dold.me>
AuthorDate: Wed Oct 20 13:06:31 2021 +0200

    wallet-cli: benchmarking
---
 packages/taler-wallet-cli/src/bench1.ts            | 89 ++++++++++++++++++++++
 .../test-withdrawal-fakebank.ts => env1.ts}        | 48 +++---------
 .../denomStructures.ts                             |  0
 .../faultInjection.ts                              |  2 +-
 .../src/{integrationtests => harness}/harness.ts   | 15 ++++
 .../src/{integrationtests => harness}/helpers.ts   |  0
 .../src/{integrationtests => harness}/libeufin.ts  |  4 +-
 .../merchantApiTypes.ts                            |  0
 .../src/{integrationtests => harness}/sync.ts      |  2 +-
 packages/taler-wallet-cli/src/index.ts             | 33 +++++++-
 .../integrationtests/scenario-prompt-payment.ts    |  4 +-
 .../src/integrationtests/test-bank-api.ts          |  4 +-
 .../src/integrationtests/test-claim-loop.ts        |  4 +-
 .../src/integrationtests/test-denom-unoffered.ts   |  4 +-
 .../src/integrationtests/test-deposit.ts           |  4 +-
 .../integrationtests/test-exchange-management.ts   |  6 +-
 .../integrationtests/test-exchange-timetravel.ts   |  6 +-
 .../src/integrationtests/test-fee-regression.ts    |  4 +-
 .../test-libeufin-api-bankaccount.ts               |  4 +-
 .../test-libeufin-api-bankconnection.ts            |  4 +-
 .../test-libeufin-api-facade-bad-request.ts        |  4 +-
 .../integrationtests/test-libeufin-api-facade.ts   |  4 +-
 .../test-libeufin-api-permissions.ts               |  4 +-
 .../test-libeufin-api-sandbox-camt.ts              |  4 +-
 .../test-libeufin-api-sandbox-transactions.ts      |  4 +-
 .../test-libeufin-api-scheduling.ts                |  8 +-
 .../integrationtests/test-libeufin-api-users.ts    |  4 +-
 .../integrationtests/test-libeufin-bad-gateway.ts  |  6 +-
 .../src/integrationtests/test-libeufin-basic.ts    |  8 +-
 .../src/integrationtests/test-libeufin-c5x.ts      |  4 +-
 .../test-libeufin-facade-anastasis.ts              |  4 +-
 .../integrationtests/test-libeufin-keyrotation.ts  |  4 +-
 .../test-libeufin-nexus-balance.ts                 |  4 +-
 .../test-libeufin-refund-multiple-users.ts         |  4 +-
 .../src/integrationtests/test-libeufin-refund.ts   |  4 +-
 .../test-libeufin-sandbox-wire-transfer-cli.ts     |  4 +-
 .../src/integrationtests/test-libeufin-tutorial.ts |  4 +-
 .../test-merchant-exchange-confusion.ts            |  8 +-
 .../test-merchant-instances-delete.ts              |  2 +-
 .../test-merchant-instances-urls.ts                |  2 +-
 .../integrationtests/test-merchant-instances.ts    |  2 +-
 .../integrationtests/test-merchant-longpolling.ts  |  4 +-
 .../integrationtests/test-merchant-refund-api.ts   |  4 +-
 .../test-merchant-spec-public-orders.ts            |  4 +-
 .../src/integrationtests/test-pay-abort.ts         |  6 +-
 .../src/integrationtests/test-pay-paid.ts          |  6 +-
 .../src/integrationtests/test-payment-claim.ts     |  4 +-
 .../src/integrationtests/test-payment-fault.ts     |  6 +-
 .../integrationtests/test-payment-forgettable.ts   |  4 +-
 .../integrationtests/test-payment-idempotency.ts   |  4 +-
 .../src/integrationtests/test-payment-multiple.ts  |  6 +-
 .../src/integrationtests/test-payment-on-demo.ts   |  4 +-
 .../src/integrationtests/test-payment-transient.ts |  6 +-
 .../src/integrationtests/test-payment-zero.ts      |  4 +-
 .../src/integrationtests/test-payment.ts           |  4 +-
 .../src/integrationtests/test-paywall-flow.ts      |  4 +-
 .../src/integrationtests/test-refund-auto.ts       |  4 +-
 .../src/integrationtests/test-refund-gone.ts       |  4 +-
 .../integrationtests/test-refund-incremental.ts    |  4 +-
 .../src/integrationtests/test-refund.ts            |  4 +-
 .../src/integrationtests/test-revocation.ts        |  6 +-
 .../test-timetravel-autorefresh.ts                 |  6 +-
 .../integrationtests/test-timetravel-withdraw.ts   |  4 +-
 .../src/integrationtests/test-tipping.ts           |  4 +-
 .../integrationtests/test-wallet-backup-basic.ts   |  6 +-
 .../test-wallet-backup-doublespend.ts              |  6 +-
 .../src/integrationtests/test-wallettesting.ts     |  6 +-
 .../integrationtests/test-withdrawal-abort-bank.ts |  4 +-
 .../test-withdrawal-bank-integrated.ts             |  4 +-
 .../integrationtests/test-withdrawal-fakebank.ts   |  6 +-
 .../src/integrationtests/test-withdrawal-manual.ts |  4 +-
 .../src/integrationtests/testrunner.ts             |  2 +-
 packages/taler-wallet-cli/src/lint.ts              |  2 +-
 packages/taler-wallet-core/src/wallet-api-types.ts |  4 +
 74 files changed, 295 insertions(+), 184 deletions(-)

diff --git a/packages/taler-wallet-cli/src/bench1.ts 
b/packages/taler-wallet-cli/src/bench1.ts
new file mode 100644
index 00000000..5563fc45
--- /dev/null
+++ b/packages/taler-wallet-cli/src/bench1.ts
@@ -0,0 +1,89 @@
+/*
+ This file is part of GNU Taler
+ (C) 2021 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
+/**
+ * Imports.
+ */
+import { buildCodecForObject, codecForString } from "@gnu-taler/taler-util";
+import {
+  getDefaultNodeWallet,
+  NodeHttpLib,
+  WalletApiOperation,
+} from "@gnu-taler/taler-wallet-core";
+
+/**
+ * Entry point for the benchmark.
+ *
+ * The benchmark runs against an existing Taler deployment and does not
+ * set up its own services.
+ */
+export async function runBench1(configJson: any): Promise<void> {
+  // Validate the configuration file for this benchmark.
+  const b1conf = codecForBench1Config().decode(configJson);
+
+  const myHttpLib = new NodeHttpLib();
+  const wallet = await getDefaultNodeWallet({
+    // No persistent DB storage.
+    persistentStoragePath: undefined,
+    httpLib: myHttpLib,
+  });
+  await wallet.client.call(WalletApiOperation.InitWallet, {});
+
+  await wallet.client.call(WalletApiOperation.WithdrawFakebank, {
+    amount: "TESTKUDOS:10",
+    bank: b1conf.bank,
+    exchange: b1conf.exchange,
+  });
+
+  await wallet.runTaskLoop({
+    stopWhenDone: true,
+  });
+
+  await wallet.client.call(WalletApiOperation.CreateDepositGroup, {
+    amount: "TESTKUDOS:5",
+    depositPaytoUri: "payto://x-taler-bank/localhost/foo",
+  });
+
+  await wallet.runTaskLoop({
+    stopWhenDone: true,
+  });
+
+  wallet.stop();
+}
+
+/**
+ * Format of the configuration file passed to the benchmark
+ */
+interface Bench1Config {
+  /**
+   * Base URL of the bank.
+   */
+  bank: string;
+
+  /**
+   * Base URL of the exchange.
+   */
+  exchange: string;
+}
+
+/**
+ * Schema validation codec for Bench1Config.
+ */
+const codecForBench1Config = () =>
+  buildCodecForObject<Bench1Config>()
+    .property("bank", codecForString())
+    .property("exchange", codecForString())
+    .build("Bench1Config");
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-fakebank.ts 
b/packages/taler-wallet-cli/src/env1.ts
similarity index 60%
copy from 
packages/taler-wallet-cli/src/integrationtests/test-withdrawal-fakebank.ts
copy to packages/taler-wallet-cli/src/env1.ts
index bfe29b32..eb7da352 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-fakebank.ts
+++ b/packages/taler-wallet-cli/src/env1.ts
@@ -1,6 +1,6 @@
 /*
  This file is part of GNU Taler
- (C) 2020 Taler Systems S.A.
+ (C) 2021 Taler Systems S.A.
 
  GNU Taler is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
@@ -17,25 +17,22 @@
 /**
  * Imports.
  */
+import { URL } from "@gnu-taler/taler-util";
+import { CoinConfig, defaultCoinConfig } from "./harness/denomStructures.js";
 import {
   GlobalTestState,
-  BankApi,
-  WalletCli,
   setupDb,
-  ExchangeService,
   FakeBankService,
-} from "./harness";
-import { createSimpleTestkudosEnvironment } from "./helpers";
-import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
-import { CoinConfig, defaultCoinConfig } from "./denomStructures.js";
-import { URL } from "@gnu-taler/taler-util";
+  ExchangeService,
+} from "./harness/harness.js";
 
 /**
- * Run test for basic, bank-integrated withdrawal.
+ * Entry point for the benchmark.
+ *
+ * The benchmark runs against an existing Taler deployment and does not
+ * set up its own services.
  */
-export async function runTestWithdrawalFakebankTest(t: GlobalTestState) {
-  // Set up test environment
-
+export async function runEnv1(t: GlobalTestState): Promise<void> {
   const db = await setupDb(t);
 
   const bank = await FakeBankService.create(t, {
@@ -68,29 +65,4 @@ export async function runTestWithdrawalFakebankTest(t: 
GlobalTestState) {
   await exchange.pingUntilAvailable();
 
   console.log("setup done!");
-
-  const wallet = new WalletCli(t);
-
-  await wallet.client.call(WalletApiOperation.AddExchange, {
-    exchangeBaseUrl: exchange.baseUrl,
-  });
-
-  await wallet.client.call(WalletApiOperation.WithdrawFakebank, {
-    exchange: exchange.baseUrl,
-    amount: "TESTKUDOS:10",
-    bank: bank.baseUrl,
-  });
-
-  await exchange.runWirewatchOnce();
-
-  await wallet.runUntilDone();
-
-  // Check balance
-
-  const balResp = await wallet.client.call(WalletApiOperation.GetBalances, {});
-  t.assertAmountEquals("TESTKUDOS:9.72", balResp.balances[0].available);
-
-  await t.shutdown();
 }
-
-runTestWithdrawalFakebankTest.suites = ["wallet"];
diff --git a/packages/taler-wallet-cli/src/integrationtests/denomStructures.ts 
b/packages/taler-wallet-cli/src/harness/denomStructures.ts
similarity index 100%
rename from packages/taler-wallet-cli/src/integrationtests/denomStructures.ts
rename to packages/taler-wallet-cli/src/harness/denomStructures.ts
diff --git a/packages/taler-wallet-cli/src/integrationtests/faultInjection.ts 
b/packages/taler-wallet-cli/src/harness/faultInjection.ts
similarity index 99%
rename from packages/taler-wallet-cli/src/integrationtests/faultInjection.ts
rename to packages/taler-wallet-cli/src/harness/faultInjection.ts
index 474482ec..4c3d0c12 100644
--- a/packages/taler-wallet-cli/src/integrationtests/faultInjection.ts
+++ b/packages/taler-wallet-cli/src/harness/faultInjection.ts
@@ -31,7 +31,7 @@ import {
   ExchangeServiceInterface,
   MerchantServiceInterface,
   MerchantService,
-} from "./harness";
+} from "../harness/harness.js";
 
 export interface FaultProxyConfig {
   inboundPort: number;
diff --git a/packages/taler-wallet-cli/src/integrationtests/harness.ts 
b/packages/taler-wallet-cli/src/harness/harness.ts
similarity index 99%
rename from packages/taler-wallet-cli/src/integrationtests/harness.ts
rename to packages/taler-wallet-cli/src/harness/harness.ts
index 6644e567..b4ac16db 100644
--- a/packages/taler-wallet-cli/src/integrationtests/harness.ts
+++ b/packages/taler-wallet-cli/src/harness/harness.ts
@@ -28,6 +28,7 @@ import * as util from "util";
 import * as fs from "fs";
 import * as path from "path";
 import * as http from "http";
+import * as readline from "readline";
 import { deepStrictEqual } from "assert";
 import { ChildProcess, spawn } from "child_process";
 import { URL } from "url";
@@ -1626,6 +1627,7 @@ export async function runTestWithState(
   gc: GlobalTestState,
   testMain: (t: GlobalTestState) => Promise<void>,
   testName: string,
+  linger: boolean = false,
 ): Promise<TestRunResult> {
   const startMs = new Date().getTime();
 
@@ -1649,6 +1651,19 @@ export async function runTestWithState(
     console.log("running test in directory", gc.testDir);
     await Promise.race([testMain(gc), p.promise]);
     status = "pass";
+    if (linger) {
+      const rl = readline.createInterface({
+        input: process.stdin,
+        output: process.stdout,
+        terminal: true,
+      });
+      await new Promise<void>((resolve, reject) => {
+        rl.question("Press enter to shut down test.", () => {
+          resolve();
+        });
+      });
+      rl.close();
+    }
   } catch (e) {
     console.error("FATAL: test failed with exception", e);
     status = "fail";
diff --git a/packages/taler-wallet-cli/src/integrationtests/helpers.ts 
b/packages/taler-wallet-cli/src/harness/helpers.ts
similarity index 100%
rename from packages/taler-wallet-cli/src/integrationtests/helpers.ts
rename to packages/taler-wallet-cli/src/harness/helpers.ts
diff --git a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts 
b/packages/taler-wallet-cli/src/harness/libeufin.ts
similarity index 99%
rename from packages/taler-wallet-cli/src/integrationtests/libeufin.ts
rename to packages/taler-wallet-cli/src/harness/libeufin.ts
index 2ee98952..11447b38 100644
--- a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts
+++ b/packages/taler-wallet-cli/src/harness/libeufin.ts
@@ -19,7 +19,7 @@
  */
 import axios from "axios";
 import { URL } from "@gnu-taler/taler-util";
-import { getRandomIban, getRandomString } from "./helpers";
+import { getRandomIban, getRandomString } from "../harness/helpers.js";
 import {
   GlobalTestState,
   DbInfo,
@@ -28,7 +28,7 @@ import {
   runCommand,
   setupDb,
   sh,
-} from "./harness";
+} from "../harness/harness.js";
 
 export interface LibeufinSandboxServiceInterface {
   baseUrl: string;
diff --git a/packages/taler-wallet-cli/src/integrationtests/merchantApiTypes.ts 
b/packages/taler-wallet-cli/src/harness/merchantApiTypes.ts
similarity index 100%
rename from packages/taler-wallet-cli/src/integrationtests/merchantApiTypes.ts
rename to packages/taler-wallet-cli/src/harness/merchantApiTypes.ts
diff --git a/packages/taler-wallet-cli/src/integrationtests/sync.ts 
b/packages/taler-wallet-cli/src/harness/sync.ts
similarity index 99%
rename from packages/taler-wallet-cli/src/integrationtests/sync.ts
rename to packages/taler-wallet-cli/src/harness/sync.ts
index fccff715..16be89ef 100644
--- a/packages/taler-wallet-cli/src/integrationtests/sync.ts
+++ b/packages/taler-wallet-cli/src/harness/sync.ts
@@ -24,7 +24,7 @@ import {
   GlobalTestState,
   pingProc,
   ProcessWrapper,
-} from "./harness";
+} from "../harness/harness.js";
 import { Configuration } from "@gnu-taler/taler-util";
 
 const exec = util.promisify(require("child_process").exec);
diff --git a/packages/taler-wallet-cli/src/index.ts 
b/packages/taler-wallet-cli/src/index.ts
index a5e129d9..142e98e7 100644
--- a/packages/taler-wallet-cli/src/index.ts
+++ b/packages/taler-wallet-cli/src/index.ts
@@ -19,6 +19,7 @@
  */
 import os from "os";
 import fs from "fs";
+import path from "path";
 import { deepStrictEqual } from "assert";
 // Polyfill for encoding which isn't present globally in older nodejs versions
 import { TextEncoder, TextDecoder } from "util";
@@ -56,6 +57,9 @@ import {
   Wallet,
 } from "@gnu-taler/taler-wallet-core";
 import { lintExchangeDeployment } from "./lint.js";
+import { runBench1 } from "./bench1.js";
+import { runEnv1 } from "./env1.js";
+import { GlobalTestState, runTestWithState } from "./harness/harness.js";
 
 // This module also serves as the entry point for the crypto
 // thread worker, and thus must expose these two handlers.
@@ -634,6 +638,33 @@ const advancedCli = walletCli.subcommand("advancedArgs", 
"advanced", {
     "Subcommands for advanced operations (only use if you know what you're 
doing!).",
 });
 
+advancedCli
+  .subcommand("bench1", "bench1", {
+    help: "Run the 'bench1' benchmark",
+  })
+  .requiredOption("configJson", ["--config-json"], clk.STRING)
+  .action(async (args) => {
+    let config: any;
+    try {
+      config = JSON.parse(args.bench1.configJson);
+    } catch (e) {
+      console.log("Could not parse config JSON");
+    }
+    await runBench1(config);
+  });
+
+advancedCli
+  .subcommand("env1", "env1", {
+    help: "Run a test environment for bench1",
+  })
+  .action(async (args) => {
+    const testDir = fs.mkdtempSync(path.join(os.tmpdir(), "taler-env1-"));
+    const testState = new GlobalTestState({
+      testDir,
+    });
+    await runTestWithState(testState, runEnv1, "env1", true);
+  });
+
 advancedCli
   .subcommand("withdrawFakebank", "withdraw-fakebank", {
     help: "Withdraw via a fakebank.",
@@ -642,7 +673,7 @@ advancedCli
     help: "Base URL of the exchange to use",
   })
   .requiredOption("amount", ["--amount"], clk.STRING, {
-    help: "Amount to withdraw (before fees)."
+    help: "Amount to withdraw (before fees).",
   })
   .requiredOption("bank", ["--bank"], clk.STRING, {
     help: "Base URL of the Taler fakebank service.",
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/scenario-prompt-payment.ts 
b/packages/taler-wallet-cli/src/integrationtests/scenario-prompt-payment.ts
index e3c2af8e..ea05de8e 100644
--- a/packages/taler-wallet-cli/src/integrationtests/scenario-prompt-payment.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/scenario-prompt-payment.ts
@@ -17,8 +17,8 @@
 /**
  * Imports.
  */
-import { GlobalTestState, MerchantPrivateApi } from "./harness";
-import { createSimpleTestkudosEnvironment, withdrawViaBank } from "./helpers";
+import { GlobalTestState, MerchantPrivateApi } from "../harness/harness.js";
+import { createSimpleTestkudosEnvironment, withdrawViaBank } from 
"../harness/helpers.js";
 
 /**
  * Run test for basic, bank-integrated withdrawal.
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-bank-api.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-bank-api.ts
index d6d0e2dc..0f8af05e 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-bank-api.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-bank-api.ts
@@ -27,9 +27,9 @@ import {
   BankApi,
   BankAccessApi,
   CreditDebitIndicator,
-} from "./harness";
+} from "../harness/harness.js";
 import { createEddsaKeyPair, encodeCrock } from "@gnu-taler/taler-util";
-import { defaultCoinConfig } from "./denomStructures";
+import { defaultCoinConfig } from "../harness/denomStructures";
 
 /**
  * Run test for basic, bank-integrated withdrawal.
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-claim-loop.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-claim-loop.ts
index 46882d5c..a509e3b1 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-claim-loop.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-claim-loop.ts
@@ -17,8 +17,8 @@
 /**
  * Imports.
  */
-import { GlobalTestState, MerchantPrivateApi } from "./harness";
-import { createSimpleTestkudosEnvironment, withdrawViaBank } from "./helpers";
+import { GlobalTestState, MerchantPrivateApi } from "../harness/harness.js";
+import { createSimpleTestkudosEnvironment, withdrawViaBank } from 
"../harness/helpers.js";
 import { URL } from "url";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
 
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-denom-unoffered.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-denom-unoffered.ts
index 430a1ac9..28cca075 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-denom-unoffered.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-denom-unoffered.ts
@@ -27,8 +27,8 @@ import {
   WalletApiOperation,
 } from "@gnu-taler/taler-wallet-core";
 import { makeEventId } from "@gnu-taler/taler-wallet-core";
-import { GlobalTestState, MerchantPrivateApi } from "./harness";
-import { createSimpleTestkudosEnvironment, withdrawViaBank } from "./helpers";
+import { GlobalTestState, MerchantPrivateApi } from "../harness/harness.js";
+import { createSimpleTestkudosEnvironment, withdrawViaBank } from 
"../harness/helpers.js";
 
 export async function runDenomUnofferedTest(t: GlobalTestState) {
   // Set up test environment
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-deposit.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-deposit.ts
index 156661e4..f33c8338 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-deposit.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-deposit.ts
@@ -18,8 +18,8 @@
  * Imports.
  */
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
-import { GlobalTestState } from "./harness";
-import { createSimpleTestkudosEnvironment, withdrawViaBank } from "./helpers";
+import { GlobalTestState } from "../harness/harness.js";
+import { createSimpleTestkudosEnvironment, withdrawViaBank } from 
"../harness/helpers.js";
 
 /**
  * Run test for basic, bank-integrated withdrawal and payment.
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-exchange-management.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-exchange-management.ts
index 9cbdbd34..8a5d563c 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-exchange-management.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-exchange-management.ts
@@ -26,7 +26,7 @@ import {
   MerchantService,
   BankApi,
   BankAccessApi,
-} from "./harness";
+} from "../harness/harness.js";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
 import {
   ExchangesListRespose,
@@ -36,8 +36,8 @@ import {
 import {
   FaultInjectedExchangeService,
   FaultInjectionResponseContext,
-} from "./faultInjection";
-import { defaultCoinConfig } from "./denomStructures";
+} from "../harness/faultInjection";
+import { defaultCoinConfig } from "../harness/denomStructures";
 
 /**
  * Test if the wallet handles outdated exchange versions correct.y
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-exchange-timetravel.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-exchange-timetravel.ts
index 50065c0d..56684f70 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-exchange-timetravel.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-exchange-timetravel.ts
@@ -31,7 +31,7 @@ import {
   readSuccessResponseJsonOrThrow,
   WalletApiOperation,
 } from "@gnu-taler/taler-wallet-core";
-import { makeNoFeeCoinConfig } from "./denomStructures";
+import { makeNoFeeCoinConfig } from "../harness/denomStructures";
 import {
   BankService,
   ExchangeService,
@@ -40,8 +40,8 @@ import {
   MerchantService,
   setupDb,
   WalletCli,
-} from "./harness";
-import { startWithdrawViaBank, withdrawViaBank } from "./helpers";
+} from "../harness/harness.js";
+import { startWithdrawViaBank, withdrawViaBank } from "../harness/helpers.js";
 
 async function applyTimeTravel(
   timetravelDuration: Duration,
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-fee-regression.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-fee-regression.ts
index ae8cf0e1..025e1222 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-fee-regression.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-fee-regression.ts
@@ -25,12 +25,12 @@ import {
   MerchantService,
   setupDb,
   WalletCli,
-} from "./harness";
+} from "../harness/harness.js";
 import {
   withdrawViaBank,
   makeTestPayment,
   SimpleTestEnvironment,
-} from "./helpers";
+} from "../harness/helpers.js";
 
 /**
  * Run a test case with a simple TESTKUDOS Taler environment, consisting
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-bankaccount.ts
 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-bankaccount.ts
index 8e079caa..839ad5fa 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-bankaccount.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-bankaccount.ts
@@ -17,7 +17,7 @@
 /**
  * Imports.
  */
-import { GlobalTestState } from "./harness";
+import { GlobalTestState } from "../harness/harness.js";
 import {
   NexusUserBundle,
   LibeufinNexusApi,
@@ -25,7 +25,7 @@ import {
   LibeufinSandboxService,
   LibeufinSandboxApi,
   findNexusPayment,
-} from "./libeufin";
+} from "../harness/libeufin";
 
 /**
  * Run basic test with LibEuFin.
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-bankconnection.ts
 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-bankconnection.ts
index f8bee7f1..f1d507c0 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-bankconnection.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-bankconnection.ts
@@ -17,7 +17,7 @@
 /**
  * Imports.
  */
-import { GlobalTestState } from "./harness";
+import { GlobalTestState } from "../harness/harness.js";
 import {
   NexusUserBundle,
   LibeufinNexusApi,
@@ -25,7 +25,7 @@ import {
   LibeufinSandboxService,
   LibeufinSandboxApi,
   findNexusPayment,
-} from "./libeufin";
+} from "../harness/libeufin";
 
 /**
  * Run basic test with LibEuFin.
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-facade-bad-request.ts
 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-facade-bad-request.ts
index 1917c0c1..b106cf30 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-facade-bad-request.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-facade-bad-request.ts
@@ -19,13 +19,13 @@
  */
 import axios from "axios";
 import { URL } from "@gnu-taler/taler-util";
-import { GlobalTestState } from "./harness";
+import { GlobalTestState } from "../harness/harness.js";
 import {
   SandboxUserBundle,
   NexusUserBundle,
   launchLibeufinServices,
   LibeufinNexusApi,
-} from "./libeufin";
+} from "../harness/libeufin";
 
 export async function runLibeufinApiFacadeBadRequestTest(t: GlobalTestState) {
 
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-facade.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-facade.ts
index b0e56914..c49d4971 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-facade.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-facade.ts
@@ -17,13 +17,13 @@
 /**
  * Imports.
  */
-import { GlobalTestState } from "./harness";
+import { GlobalTestState } from "../harness/harness.js";
 import {
   SandboxUserBundle,
   NexusUserBundle,
   launchLibeufinServices,
   LibeufinNexusApi,
-} from "./libeufin";
+} from "../harness/libeufin";
 
 /**
  * Run basic test with LibEuFin.
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-permissions.ts
 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-permissions.ts
index abb843c9..e64f459a 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-permissions.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-permissions.ts
@@ -17,12 +17,12 @@
 /**
  * Imports.
  */
-import { GlobalTestState } from "./harness";
+import { GlobalTestState } from "../harness/harness.js";
 import {
   NexusUserBundle,
   LibeufinNexusApi,
   LibeufinNexusService,
-} from "./libeufin";
+} from "../harness/libeufin";
 
 /**
  * Run basic test with LibEuFin.
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-sandbox-camt.ts
 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-sandbox-camt.ts
index ef8a1f2b..f5df4cfa 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-sandbox-camt.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-sandbox-camt.ts
@@ -17,7 +17,7 @@
 /**
  * Imports.
  */
-import { GlobalTestState } from "./harness";
+import { GlobalTestState } from "../harness/harness.js";
 import {
   NexusUserBundle,
   LibeufinNexusApi,
@@ -25,7 +25,7 @@ import {
   LibeufinSandboxService,
   LibeufinSandboxApi,
   findNexusPayment,
-} from "./libeufin";
+} from "../harness/libeufin";
 
 // This test only checks that LibEuFin doesn't fail when
 // it generates Camt statements - no assertions take place.
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-sandbox-transactions.ts
 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-sandbox-transactions.ts
index f9676c58..a9064492 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-sandbox-transactions.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-sandbox-transactions.ts
@@ -17,7 +17,7 @@
 /**
  * Imports.
  */
-import { GlobalTestState } from "./harness";
+import { GlobalTestState } from "../harness/harness.js";
 import {
   NexusUserBundle,
   LibeufinNexusApi,
@@ -25,7 +25,7 @@ import {
   LibeufinSandboxService,
   LibeufinSandboxApi,
   findNexusPayment,
-} from "./libeufin";
+} from "../harness/libeufin";
 
 export async function runLibeufinApiSandboxTransactionsTest(t: 
GlobalTestState) {
 
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-scheduling.ts
 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-scheduling.ts
index d543bc4a..3863c571 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-scheduling.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-scheduling.ts
@@ -17,7 +17,7 @@
 /**
  * Imports.
  */
-import { GlobalTestState, setupDb } from "./harness";
+import { GlobalTestState, setupDb } from "../harness/harness.js";
 import {
   SandboxUserBundle,
   NexusUserBundle,
@@ -25,7 +25,7 @@ import {
   LibeufinSandboxApi,
   LibeufinNexusApi,
   LibeufinNexusService,
-} from "./libeufin";
+} from "../harness/libeufin";
 
 /**
  * Test Nexus scheduling API.  It creates a task, check whether it shows
@@ -72,7 +72,7 @@ export async function runLibeufinApiSchedulingTest(t: 
GlobalTestState) {
       user01nexus.localAccountName,
       "test-task",
     );
-  } catch (err) {
+  } catch (err: any) {
     t.assertTrue(err.response.status == 404);
   }
 
@@ -100,7 +100,7 @@ export async function runLibeufinApiSchedulingTest(t: 
GlobalTestState) {
       user01nexus.localAccountName,
       "test-task",
     );
-  } catch (err) {
+  } catch (err: any) {
     t.assertTrue(err.response.status == 404);
   }
 }
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-users.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-users.ts
index b53db421..edf66690 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-users.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-users.ts
@@ -17,8 +17,8 @@
 /**
  * Imports.
  */
-import { GlobalTestState } from "./harness";
-import { LibeufinNexusApi, LibeufinNexusService } from "./libeufin";
+import { GlobalTestState } from "../harness/harness.js";
+import { LibeufinNexusApi, LibeufinNexusService } from "../harness/libeufin";
 
 /**
  * Run basic test with LibEuFin.
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-bad-gateway.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-bad-gateway.ts
index 3da5850c..786e6183 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-bad-gateway.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-bad-gateway.ts
@@ -17,13 +17,13 @@
 /**
  * Imports.
  */
-import { GlobalTestState, delayMs } from "./harness";
+import { GlobalTestState, delayMs } from "../harness/harness.js";
 import {
   NexusUserBundle,
   LibeufinNexusApi,
   LibeufinNexusService,
   LibeufinSandboxService,
-} from "./libeufin";
+} from "../harness/libeufin";
 
 /**
  * Testing how Nexus reacts when the Sandbox is unreachable.
@@ -65,7 +65,7 @@ export async function runLibeufinBadGatewayTest(t: 
GlobalTestState) {
       libeufinNexus,
       user01nexus.connReq.name,
     );
-  } catch(e) {
+  } catch(e: any) {
     t.assertTrue(e.response.status == 502);
     return;
   }
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-basic.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-basic.ts
index b284d729..9e1842d0 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-basic.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-basic.ts
@@ -19,7 +19,7 @@
  */
 import { CoreApiResponse } from "@gnu-taler/taler-util";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
-import { CoinConfig, defaultCoinConfig } from "./denomStructures";
+import { CoinConfig, defaultCoinConfig } from "../harness/denomStructures";
 import {
   DbInfo,
   HarnessExchangeBankAccount,
@@ -28,14 +28,14 @@ import {
   MerchantService,
   setupDb,
   WalletCli,
-} from "./harness";
-import { makeTestPayment } from "./helpers";
+} from "../harness/harness.js";
+import { makeTestPayment } from "../harness/helpers.js";
 import {
   LibeufinNexusApi,
   LibeufinNexusService,
   LibeufinSandboxApi,
   LibeufinSandboxService,
-} from "./libeufin";
+} from "../harness/libeufin";
 
 const exchangeIban = "DE71500105179674997361";
 const customerIban = "DE84500105176881385584";
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-c5x.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-c5x.ts
index e45f0a23..5a995fb6 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-c5x.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-c5x.ts
@@ -17,14 +17,14 @@
 /**
  * Imports.
  */
-import { GlobalTestState, delayMs } from "./harness";
+import { GlobalTestState, delayMs } from "../harness/harness.js";
 import {
   SandboxUserBundle,
   NexusUserBundle,
   launchLibeufinServices,
   LibeufinSandboxApi,
   LibeufinNexusApi,
-} from "./libeufin";
+} from "../harness/libeufin";
 
 /**
  * This test checks how the C52 and C53 coordinate.  It'll test
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-facade-anastasis.ts
 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-facade-anastasis.ts
index 14387012..0bbd4fd2 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-facade-anastasis.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-facade-anastasis.ts
@@ -17,14 +17,14 @@
 /**
  * Imports.
  */
-import { GlobalTestState } from "./harness";
+import { GlobalTestState } from "../harness/harness.js";
 import {
   SandboxUserBundle,
   NexusUserBundle,
   launchLibeufinServices,
   LibeufinNexusApi,
   LibeufinSandboxApi,
-} from "./libeufin";
+} from "../harness/libeufin";
 
 /**
  * Testing the Anastasis API, offered by the Anastasis facade.
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-keyrotation.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-keyrotation.ts
index 8e527804..5dc31f0b 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-keyrotation.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-keyrotation.ts
@@ -17,14 +17,14 @@
 /**
  * Imports.
  */
-import { GlobalTestState } from "./harness";
+import { GlobalTestState } from "../harness/harness.js";
 import {
   SandboxUserBundle,
   NexusUserBundle,
   launchLibeufinServices,
   LibeufinSandboxApi,
   LibeufinNexusApi,
-} from "./libeufin";
+} from "../harness/libeufin";
 
 /**
  * Run basic test with LibEuFin.
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-nexus-balance.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-nexus-balance.ts
index c00a102d..23d76081 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-nexus-balance.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-nexus-balance.ts
@@ -17,14 +17,14 @@
 /**
  * Imports.
  */
-import { GlobalTestState, delayMs } from "./harness";
+import { GlobalTestState, delayMs } from "../harness/harness.js";
 import {
   SandboxUserBundle,
   NexusUserBundle,
   launchLibeufinServices,
   LibeufinSandboxApi,
   LibeufinNexusApi,
-} from "./libeufin";
+} from "../harness/libeufin";
 
 /**
  * This test checks how the C52 and C53 coordinate.  It'll test
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund-multiple-users.ts
 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund-multiple-users.ts
index 234a7bae..39517f24 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund-multiple-users.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund-multiple-users.ts
@@ -17,14 +17,14 @@
 /**
  * Imports.
  */
-import { GlobalTestState, delayMs } from "./harness";
+import { GlobalTestState, delayMs } from "../harness/harness.js";
 import {
   SandboxUserBundle,
   NexusUserBundle,
   launchLibeufinServices,
   LibeufinSandboxApi,
   LibeufinNexusApi,
-} from "./libeufin";
+} from "../harness/libeufin";
 
 /**
  * User 01 expects a refund from user 02, and expectedly user 03
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund.ts
index 5d5370d0..d91ae88b 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund.ts
@@ -17,14 +17,14 @@
 /**
  * Imports.
  */
-import { GlobalTestState, delayMs } from "./harness";
+import { GlobalTestState, delayMs } from "../harness/harness.js";
 import {
   SandboxUserBundle,
   NexusUserBundle,
   launchLibeufinServices,
   LibeufinSandboxApi,
   LibeufinNexusApi,
-} from "./libeufin";
+} from "../harness/libeufin";
 
 /**
  * Run basic test with LibEuFin.
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-sandbox-wire-transfer-cli.ts
 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-sandbox-wire-transfer-cli.ts
index 50346899..5560f091 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-sandbox-wire-transfer-cli.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-sandbox-wire-transfer-cli.ts
@@ -17,7 +17,7 @@
 /**
  * Imports.
  */
-import { GlobalTestState } from "./harness";
+import { GlobalTestState } from "../harness/harness.js";
 import {
   NexusUserBundle,
   LibeufinNexusApi,
@@ -25,7 +25,7 @@ import {
   LibeufinSandboxService,
   LibeufinSandboxApi,
   findNexusPayment,
-} from "./libeufin";
+} from "../harness/libeufin";
 
 export async function runLibeufinSandboxWireTransferCliTest(t: 
GlobalTestState) {
 
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-tutorial.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-tutorial.ts
index eee1b893..71a1e8c4 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-tutorial.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-tutorial.ts
@@ -17,12 +17,12 @@
 /**
  * Imports.
  */
-import { GlobalTestState } from "./harness";
+import { GlobalTestState } from "../harness/harness.js";
 import {
   LibeufinNexusService,
   LibeufinSandboxService,
   LibeufinCli,
-} from "./libeufin";
+} from "../harness/libeufin";
 
 /**
  * Run basic test with LibEuFin.
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-merchant-exchange-confusion.ts
 
b/packages/taler-wallet-cli/src/integrationtests/test-merchant-exchange-confusion.ts
index 4cf9c39b..8e8f966b 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-merchant-exchange-confusion.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-merchant-exchange-confusion.ts
@@ -25,12 +25,12 @@ import {
   MerchantService,
   setupDb,
   WalletCli,
-} from "./harness";
+} from "../harness/harness.js";
 import {
   withdrawViaBank,
   createFaultInjectedMerchantTestkudosEnvironment,
   FaultyMerchantTestEnvironment,
-} from "./helpers";
+} from "../harness/helpers.js";
 import {
   PreparePayResultType,
   codecForMerchantOrderStatusUnpaid,
@@ -41,8 +41,8 @@ import {
   FaultInjectedExchangeService,
   FaultInjectedMerchantService,
   FaultInjectionRequestContext,
-} from "./faultInjection";
-import { defaultCoinConfig } from "./denomStructures";
+} from "../harness/faultInjection";
+import { defaultCoinConfig } from "../harness/denomStructures";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
 import { URL } from "url";
 
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances-delete.ts
 
b/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances-delete.ts
index 28f72969..589c7912 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances-delete.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances-delete.ts
@@ -25,7 +25,7 @@ import {
   MerchantApiClient,
   MerchantService,
   setupDb,
-} from "./harness";
+} from "../harness/harness.js";
 
 /**
  * Test instance deletion and authentication for it
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances-urls.ts
 
b/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances-urls.ts
index c2f7c517..fc5e7305 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances-urls.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances-urls.ts
@@ -24,7 +24,7 @@ import {
   MerchantApiClient,
   MerchantService,
   setupDb,
-} from "./harness";
+} from "../harness/harness.js";
 
 /**
  * Do basic checks on instance management and authentication.
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances.ts
index da45b466..46af8792 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances.ts
@@ -25,7 +25,7 @@ import {
   MerchantApiClient,
   MerchantService,
   setupDb,
-} from "./harness";
+} from "../harness/harness.js";
 
 /**
  * Do basic checks on instance management and authentication.
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-merchant-longpolling.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-merchant-longpolling.ts
index 6516327c..556d9074 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-merchant-longpolling.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-merchant-longpolling.ts
@@ -17,8 +17,8 @@
 /**
  * Imports.
  */
-import { GlobalTestState, MerchantPrivateApi } from "./harness";
-import { createSimpleTestkudosEnvironment, withdrawViaBank } from "./helpers";
+import { GlobalTestState, MerchantPrivateApi } from "../harness/harness.js";
+import { createSimpleTestkudosEnvironment, withdrawViaBank } from 
"../harness/helpers.js";
 import {
   PreparePayResultType,
   codecForMerchantOrderStatusUnpaid,
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-merchant-refund-api.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-merchant-refund-api.ts
index dc786387..466b1efb 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-merchant-refund-api.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-merchant-refund-api.ts
@@ -24,8 +24,8 @@ import {
   MerchantServiceInterface,
   WalletCli,
   ExchangeServiceInterface,
-} from "./harness";
-import { createSimpleTestkudosEnvironment, withdrawViaBank } from "./helpers";
+} from "../harness/harness.js";
+import { createSimpleTestkudosEnvironment, withdrawViaBank } from 
"../harness/helpers.js";
 import {
   URL,
   durationFromSpec,
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-merchant-spec-public-orders.ts
 
b/packages/taler-wallet-cli/src/integrationtests/test-merchant-spec-public-orders.ts
index 867af99d..70edaaf0 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-merchant-spec-public-orders.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-merchant-spec-public-orders.ts
@@ -32,11 +32,11 @@ import {
   MerchantPrivateApi,
   MerchantService,
   WalletCli,
-} from "./harness";
+} from "../harness/harness.js";
 import {
   createSimpleTestkudosEnvironment,
   withdrawViaBank,
-} from "./helpers.js";
+} from "../harness/helpers.js";
 
 const httpLib = new NodeHttpLib();
 
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-pay-abort.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-pay-abort.ts
index 709ad106..0fa9ec81 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-pay-abort.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-pay-abort.ts
@@ -27,12 +27,12 @@ import { WalletApiOperation } from 
"@gnu-taler/taler-wallet-core";
 import {
   FaultInjectionRequestContext,
   FaultInjectionResponseContext,
-} from "./faultInjection";
-import { GlobalTestState, MerchantPrivateApi, setupDb } from "./harness";
+} from "../harness/faultInjection";
+import { GlobalTestState, MerchantPrivateApi, setupDb } from 
"../harness/harness.js";
 import {
   createFaultInjectedMerchantTestkudosEnvironment,
   withdrawViaBank,
-} from "./helpers";
+} from "../harness/helpers.js";
 
 /**
  * Run test for basic, bank-integrated withdrawal.
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-pay-paid.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-pay-paid.ts
index 64645dce..2d291ddd 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-pay-paid.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-pay-paid.ts
@@ -17,11 +17,11 @@
 /**
  * Imports.
  */
-import { GlobalTestState, MerchantPrivateApi } from "./harness";
+import { GlobalTestState, MerchantPrivateApi } from "../harness/harness.js";
 import {
   withdrawViaBank,
   createFaultInjectedMerchantTestkudosEnvironment,
-} from "./helpers";
+} from "../harness/helpers.js";
 import {
   PreparePayResultType,
   codecForMerchantOrderStatusUnpaid,
@@ -29,7 +29,7 @@ import {
   URL,
 } from "@gnu-taler/taler-util";
 import axios from "axios";
-import { FaultInjectionRequestContext } from "./faultInjection";
+import { FaultInjectionRequestContext } from "../harness/faultInjection";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
 
 /**
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-payment-claim.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-payment-claim.ts
index 9620db6d..ba3bd8e0 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-payment-claim.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-payment-claim.ts
@@ -17,8 +17,8 @@
 /**
  * Imports.
  */
-import { GlobalTestState, MerchantPrivateApi, WalletCli } from "./harness";
-import { createSimpleTestkudosEnvironment, withdrawViaBank } from "./helpers";
+import { GlobalTestState, MerchantPrivateApi, WalletCli } from 
"../harness/harness.js";
+import { createSimpleTestkudosEnvironment, withdrawViaBank } from 
"../harness/helpers.js";
 import { PreparePayResultType } from "@gnu-taler/taler-util";
 import { TalerErrorCode } from "@gnu-taler/taler-util";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-payment-fault.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-payment-fault.ts
index 57ad6a4f..2be01d91 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-payment-fault.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-payment-fault.ts
@@ -31,14 +31,14 @@ import {
   MerchantPrivateApi,
   BankApi,
   BankAccessApi,
-} from "./harness";
+} from "../harness/harness.js";
 import {
   FaultInjectedExchangeService,
   FaultInjectionRequestContext,
   FaultInjectionResponseContext,
-} from "./faultInjection";
+} from "../harness/faultInjection";
 import { CoreApiResponse } from "@gnu-taler/taler-util";
-import { defaultCoinConfig } from "./denomStructures";
+import { defaultCoinConfig } from "../harness/denomStructures";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
 
 /**
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-payment-forgettable.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-payment-forgettable.ts
index 49ffadc9..3bdd6bef 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-payment-forgettable.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-payment-forgettable.ts
@@ -17,12 +17,12 @@
 /**
  * Imports.
  */
-import { GlobalTestState } from "./harness";
+import { GlobalTestState } from "../harness/harness.js";
 import {
   createSimpleTestkudosEnvironment,
   withdrawViaBank,
   makeTestPayment,
-} from "./helpers";
+} from "../harness/helpers.js";
 
 /**
  * Run test for payment with a contract that has forgettable fields.
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-payment-idempotency.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-payment-idempotency.ts
index 58c951b6..9378465a 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-payment-idempotency.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-payment-idempotency.ts
@@ -17,8 +17,8 @@
 /**
  * Imports.
  */
-import { GlobalTestState, MerchantPrivateApi } from "./harness";
-import { createSimpleTestkudosEnvironment, withdrawViaBank } from "./helpers";
+import { GlobalTestState, MerchantPrivateApi } from "../harness/harness.js";
+import { createSimpleTestkudosEnvironment, withdrawViaBank } from 
"../harness/helpers.js";
 import { PreparePayResultType } from "@gnu-taler/taler-util";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
 
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-payment-multiple.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-payment-multiple.ts
index f545d586..754c3a0e 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-payment-multiple.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-payment-multiple.ts
@@ -25,9 +25,9 @@ import {
   MerchantService,
   WalletCli,
   MerchantPrivateApi,
-} from "./harness";
-import { withdrawViaBank } from "./helpers";
-import { coin_ct10, coin_u1 } from "./denomStructures";
+} from "../harness/harness.js";
+import { withdrawViaBank } from "../harness/helpers.js";
+import { coin_ct10, coin_u1 } from "../harness/denomStructures";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
 
 async function setupTest(
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-payment-on-demo.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-payment-on-demo.ts
index 0dabc9ca..1d419fd9 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-payment-on-demo.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-payment-on-demo.ts
@@ -22,10 +22,10 @@ import {
   BankApi,
   WalletCli,
   BankAccessApi
-} from "./harness";
+} from "../harness/harness.js";
 import {
   makeTestPayment,
-} from "./helpers";
+} from "../harness/helpers.js";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
 
 /**
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-payment-transient.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-payment-transient.ts
index b171ff66..75d44d49 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-payment-transient.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-payment-transient.ts
@@ -17,16 +17,16 @@
 /**
  * Imports.
  */
-import { GlobalTestState, MerchantPrivateApi } from "./harness";
+import { GlobalTestState, MerchantPrivateApi } from "../harness/harness.js";
 import {
   withdrawViaBank,
   createFaultInjectedMerchantTestkudosEnvironment,
-} from "./helpers";
+} from "../harness/helpers.js";
 import axios from "axios";
 import {
   FaultInjectionRequestContext,
   FaultInjectionResponseContext,
-} from "./faultInjection";
+} from "../harness/faultInjection";
 import {
   codecForMerchantOrderStatusUnpaid,
   ConfirmPayResultType,
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-payment-zero.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-payment-zero.ts
index 771ca27e..c38b8b38 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-payment-zero.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-payment-zero.ts
@@ -18,12 +18,12 @@
  * Imports.
  */
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
-import { GlobalTestState } from "./harness";
+import { GlobalTestState } from "../harness/harness.js";
 import {
   createSimpleTestkudosEnvironment,
   withdrawViaBank,
   makeTestPayment,
-} from "./helpers";
+} from "../harness/helpers.js";
 
 /**
  * Run test for a payment for a "free" order with
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-payment.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-payment.ts
index 3512ff04..967d491b 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-payment.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-payment.ts
@@ -17,12 +17,12 @@
 /**
  * Imports.
  */
-import { GlobalTestState } from "./harness";
+import { GlobalTestState } from "../harness/harness.js";
 import {
   createSimpleTestkudosEnvironment,
   withdrawViaBank,
   makeTestPayment,
-} from "./helpers";
+} from "../harness/helpers.js";
 
 /**
  * Run test for basic, bank-integrated withdrawal and payment.
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-paywall-flow.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-paywall-flow.ts
index 04eee79e..a8e3b3e9 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-paywall-flow.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-paywall-flow.ts
@@ -17,8 +17,8 @@
 /**
  * Imports.
  */
-import { GlobalTestState, MerchantPrivateApi } from "./harness";
-import { createSimpleTestkudosEnvironment, withdrawViaBank } from "./helpers";
+import { GlobalTestState, MerchantPrivateApi } from "../harness/harness.js";
+import { createSimpleTestkudosEnvironment, withdrawViaBank } from 
"../harness/helpers.js";
 import {
   PreparePayResultType,
   codecForMerchantOrderStatusUnpaid,
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-refund-auto.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-refund-auto.ts
index f1e79f4b..230fc942 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-refund-auto.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-refund-auto.ts
@@ -17,8 +17,8 @@
 /**
  * Imports.
  */
-import { GlobalTestState, MerchantPrivateApi } from "./harness";
-import { createSimpleTestkudosEnvironment, withdrawViaBank } from "./helpers";
+import { GlobalTestState, MerchantPrivateApi } from "../harness/harness.js";
+import { createSimpleTestkudosEnvironment, withdrawViaBank } from 
"../harness/helpers.js";
 import { durationFromSpec } from "@gnu-taler/taler-util";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
 
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-refund-gone.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-refund-gone.ts
index b4276248..acb74b3d 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-refund-gone.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-refund-gone.ts
@@ -17,12 +17,12 @@
 /**
  * Imports.
  */
-import { GlobalTestState, MerchantPrivateApi } from "./harness";
+import { GlobalTestState, MerchantPrivateApi } from "../harness/harness.js";
 import {
   createSimpleTestkudosEnvironment,
   withdrawViaBank,
   applyTimeTravel,
-} from "./helpers";
+} from "../harness/helpers.js";
 import {
   durationFromSpec,
   timestampAddDuration,
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-refund-incremental.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-refund-incremental.ts
index 11e1226d..47c2293e 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-refund-incremental.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-refund-incremental.ts
@@ -17,8 +17,8 @@
 /**
  * Imports.
  */
-import { GlobalTestState, delayMs, MerchantPrivateApi } from "./harness";
-import { createSimpleTestkudosEnvironment, withdrawViaBank } from "./helpers";
+import { GlobalTestState, delayMs, MerchantPrivateApi } from 
"../harness/harness.js";
+import { createSimpleTestkudosEnvironment, withdrawViaBank } from 
"../harness/helpers.js";
 import {
   TransactionType,
   Amounts,
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-refund.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-refund.ts
index 1808f7d7..f1177192 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-refund.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-refund.ts
@@ -19,8 +19,8 @@
  */
 import { durationFromSpec } from "@gnu-taler/taler-util";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
-import { GlobalTestState, MerchantPrivateApi } from "./harness";
-import { createSimpleTestkudosEnvironment, withdrawViaBank } from "./helpers";
+import { GlobalTestState, MerchantPrivateApi } from "../harness/harness.js";
+import { createSimpleTestkudosEnvironment, withdrawViaBank } from 
"../harness/helpers.js";
 
 /**
  * Run test for basic, bank-integrated withdrawal.
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-revocation.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-revocation.ts
index fc1ffb26..276c532b 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-revocation.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-revocation.ts
@@ -18,7 +18,7 @@
  * Imports.
  */
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
-import { CoinConfig } from "./denomStructures";
+import { CoinConfig } from "../harness/denomStructures";
 import {
   GlobalTestState,
   ExchangeService,
@@ -27,12 +27,12 @@ import {
   setupDb,
   BankService,
   delayMs,
-} from "./harness";
+} from "../harness/harness.js";
 import {
   withdrawViaBank,
   makeTestPayment,
   SimpleTestEnvironment,
-} from "./helpers";
+} from "../harness/helpers.js";
 
 async function revokeAllWalletCoins(req: {
   wallet: WalletCli;
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-timetravel-autorefresh.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-timetravel-autorefresh.ts
index bad82119..e20d8bda 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-timetravel-autorefresh.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-timetravel-autorefresh.ts
@@ -27,7 +27,7 @@ import {
   PendingOperationsResponse,
   WalletApiOperation,
 } from "@gnu-taler/taler-wallet-core";
-import { makeNoFeeCoinConfig } from "./denomStructures";
+import { makeNoFeeCoinConfig } from "../harness/denomStructures";
 import {
   BankService,
   ExchangeService,
@@ -36,8 +36,8 @@ import {
   MerchantService,
   setupDb,
   WalletCli,
-} from "./harness";
-import { startWithdrawViaBank, withdrawViaBank } from "./helpers";
+} from "../harness/harness.js";
+import { startWithdrawViaBank, withdrawViaBank } from "../harness/helpers.js";
 
 async function applyTimeTravel(
   timetravelDuration: Duration,
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-timetravel-withdraw.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-timetravel-withdraw.ts
index b9e45c86..2ff85705 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-timetravel-withdraw.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-timetravel-withdraw.ts
@@ -17,12 +17,12 @@
 /**
  * Imports.
  */
-import { GlobalTestState } from "./harness";
+import { GlobalTestState } from "../harness/harness.js";
 import {
   createSimpleTestkudosEnvironment,
   withdrawViaBank,
   startWithdrawViaBank,
-} from "./helpers";
+} from "../harness/helpers.js";
 import { Duration, TransactionType } from "@gnu-taler/taler-util";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
 
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-tipping.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-tipping.ts
index 2421b462..c6a7f840 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-tipping.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-tipping.ts
@@ -18,8 +18,8 @@
  * Imports.
  */
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
-import { GlobalTestState, MerchantPrivateApi, BankApi } from "./harness";
-import { createSimpleTestkudosEnvironment } from "./helpers";
+import { GlobalTestState, MerchantPrivateApi, BankApi } from 
"../harness/harness.js";
+import { createSimpleTestkudosEnvironment } from "../harness/helpers.js";
 
 /**
  * Run test for basic, bank-integrated withdrawal.
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-basic.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-basic.ts
index 7debfe6b..23e01e5e 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-basic.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-basic.ts
@@ -18,9 +18,9 @@
  * Imports.
  */
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
-import { GlobalTestState, WalletCli } from "./harness";
-import { createSimpleTestkudosEnvironment, withdrawViaBank } from "./helpers";
-import { SyncService } from "./sync";
+import { GlobalTestState, WalletCli } from "../harness/harness.js";
+import { createSimpleTestkudosEnvironment, withdrawViaBank } from 
"../harness/helpers.js";
+import { SyncService } from "../harness/sync";
 
 /**
  * Run test for basic, bank-integrated withdrawal.
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-doublespend.ts
 
b/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-doublespend.ts
index ab2687fc..8c20dcc2 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-doublespend.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-doublespend.ts
@@ -19,13 +19,13 @@
  */
 import { PreparePayResultType } from "@gnu-taler/taler-util";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
-import { GlobalTestState, WalletCli, MerchantPrivateApi } from "./harness";
+import { GlobalTestState, WalletCli, MerchantPrivateApi } from 
"../harness/harness.js";
 import {
   createSimpleTestkudosEnvironment,
   makeTestPayment,
   withdrawViaBank,
-} from "./helpers";
-import { SyncService } from "./sync";
+} from "../harness/helpers.js";
+import { SyncService } from "../harness/sync";
 
 /**
  * Run test for basic, bank-integrated withdrawal.
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-wallettesting.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-wallettesting.ts
index 2499e65a..c21a7279 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-wallettesting.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-wallettesting.ts
@@ -24,7 +24,7 @@
  */
 import { Amounts } from "@gnu-taler/taler-util";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
-import { CoinConfig, defaultCoinConfig } from "./denomStructures.js";
+import { CoinConfig, defaultCoinConfig } from "../harness/denomStructures.js";
 import {
   BankService,
   ExchangeService,
@@ -32,8 +32,8 @@ import {
   MerchantService,
   setupDb,
   WalletCli,
-} from "./harness.js";
-import { SimpleTestEnvironment } from "./helpers.js";
+} from "../harness/harness.js";
+import { SimpleTestEnvironment } from "../harness/helpers.js";
 
 const merchantAuthToken = "secret-token:sandbox";
 
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-abort-bank.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-abort-bank.ts
index 896b1e87..fe719ea6 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-abort-bank.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-abort-bank.ts
@@ -19,8 +19,8 @@
  */
 import { TalerErrorCode } from "@gnu-taler/taler-util";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
-import { GlobalTestState, BankApi, BankAccessApi } from "./harness";
-import { createSimpleTestkudosEnvironment } from "./helpers";
+import { GlobalTestState, BankApi, BankAccessApi } from 
"../harness/harness.js";
+import { createSimpleTestkudosEnvironment } from "../harness/helpers.js";
 
 /**
  * Run test for basic, bank-integrated withdrawal.
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-bank-integrated.ts
 
b/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-bank-integrated.ts
index 4a02b270..35969c78 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-bank-integrated.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-bank-integrated.ts
@@ -17,8 +17,8 @@
 /**
  * Imports.
  */
-import { GlobalTestState, BankApi, BankAccessApi } from "./harness";
-import { createSimpleTestkudosEnvironment } from "./helpers";
+import { GlobalTestState, BankApi, BankAccessApi } from 
"../harness/harness.js";
+import { createSimpleTestkudosEnvironment } from "../harness/helpers.js";
 import { codecForBalancesResponse } from "@gnu-taler/taler-util";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
 
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-fakebank.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-fakebank.ts
index bfe29b32..97beba1b 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-fakebank.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-fakebank.ts
@@ -24,10 +24,10 @@ import {
   setupDb,
   ExchangeService,
   FakeBankService,
-} from "./harness";
-import { createSimpleTestkudosEnvironment } from "./helpers";
+} from "../harness/harness.js";
+import { createSimpleTestkudosEnvironment } from "../harness/helpers.js";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
-import { CoinConfig, defaultCoinConfig } from "./denomStructures.js";
+import { CoinConfig, defaultCoinConfig } from "../harness/denomStructures.js";
 import { URL } from "@gnu-taler/taler-util";
 
 /**
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-manual.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-manual.ts
index fe8fd3c5..b93d1b50 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-manual.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-manual.ts
@@ -17,8 +17,8 @@
 /**
  * Imports.
  */
-import { GlobalTestState, BankApi } from "./harness";
-import { createSimpleTestkudosEnvironment } from "./helpers";
+import { GlobalTestState, BankApi } from "../harness/harness.js";
+import { createSimpleTestkudosEnvironment } from "../harness/helpers.js";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
 
 /**
diff --git a/packages/taler-wallet-cli/src/integrationtests/testrunner.ts 
b/packages/taler-wallet-cli/src/integrationtests/testrunner.ts
index bcb0dd27..d985ed67 100644
--- a/packages/taler-wallet-cli/src/integrationtests/testrunner.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/testrunner.ts
@@ -22,7 +22,7 @@ import {
   runTestWithState,
   shouldLingerInTest,
   TestRunResult,
-} from "./harness";
+} from "../harness/harness.js";
 import { runPaymentTest } from "./test-payment";
 import { runPaymentDemoTest } from "./test-payment-on-demo";
 import * as fs from "fs";
diff --git a/packages/taler-wallet-cli/src/lint.ts 
b/packages/taler-wallet-cli/src/lint.ts
index 0fed68c3..2b888ccf 100644
--- a/packages/taler-wallet-cli/src/lint.ts
+++ b/packages/taler-wallet-cli/src/lint.ts
@@ -43,7 +43,7 @@ import {
 } from "@gnu-taler/taler-wallet-core";
 import { URL } from "url";
 import { spawn } from "child_process";
-import { delayMs } from "./integrationtests/harness.js";
+import { delayMs } from "./harness/harness.js";
 
 interface BasicConf {
   mainCurrency: string;
diff --git a/packages/taler-wallet-core/src/wallet-api-types.ts 
b/packages/taler-wallet-core/src/wallet-api-types.ts
index c5bf2c8c..991c03ee 100644
--- a/packages/taler-wallet-core/src/wallet-api-types.ts
+++ b/packages/taler-wallet-core/src/wallet-api-types.ts
@@ -118,6 +118,10 @@ export enum WalletApiOperation {
 }
 
 export type WalletOperations = {
+  [WalletApiOperation.InitWallet]: {
+    request: {};
+    response: {};
+  };
   [WalletApiOperation.WithdrawFakebank]: {
     request: WithdrawFakebankRequest;
     response: {};

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]