diff options
| author | Florian Dold <florian@dold.me> | 2022-12-08 15:01:59 +0100 | 
|---|---|---|
| committer | Florian Dold <florian@dold.me> | 2022-12-08 15:02:05 +0100 | 
| commit | 68811cc5f59e9f7f3e46e5a35edc3e4470a295db (patch) | |
| tree | ce2d114c5d3fb2654311c9a6cf85fee4bf7fff93 /packages/taler-wallet-cli | |
| parent | c54476c40e76645b5ffb507558d6a83f0e697dc7 (diff) | |
-missing file, internal benchmark
Diffstat (limited to 'packages/taler-wallet-cli')
| -rw-r--r-- | packages/taler-wallet-cli/src/env-full.ts | 101 | ||||
| -rw-r--r-- | packages/taler-wallet-cli/src/index.ts | 29 | 
2 files changed, 130 insertions, 0 deletions
diff --git a/packages/taler-wallet-cli/src/env-full.ts b/packages/taler-wallet-cli/src/env-full.ts new file mode 100644 index 000000000..3a684db0b --- /dev/null +++ b/packages/taler-wallet-cli/src/env-full.ts @@ -0,0 +1,101 @@ +/* + 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 { Duration, j2s, URL } from "@gnu-taler/taler-util"; +import { CoinConfig, defaultCoinConfig } from "./harness/denomStructures.js"; +import { +  GlobalTestState, +  setupDb, +  ExchangeService, +  FakebankService, +  MerchantService, +  getPayto, +} from "./harness/harness.js"; + +/** + * Entry point for the full Taler test environment. + */ +export async function runEnvFull(t: GlobalTestState): Promise<void> { +  const db = await setupDb(t); + +  const bank = await FakebankService.create(t, { +    allowRegistrations: true, +    currency: "TESTKUDOS", +    database: db.connStr, +    httpPort: 8082, +  }); + +  const exchange = ExchangeService.create(t, { +    name: "testexchange-1", +    currency: "TESTKUDOS", +    httpPort: 8081, +    database: db.connStr, +  }); + +  const merchant = await MerchantService.create(t, { +    name: "testmerchant-1", +    currency: "TESTKUDOS", +    httpPort: 8083, +    database: db.connStr, +  }); + +  const exchangeBankAccount = await bank.createExchangeAccount( +    "myexchange", +    "x", +  ); +  console.log("exchange bank account", j2s(exchangeBankAccount)); +  exchange.addBankAccount("1", exchangeBankAccount); + +  bank.setSuggestedExchange(exchange, exchangeBankAccount.accountPaytoUri); + +  await bank.start(); + +  await bank.pingUntilAvailable(); + +  const coinConfig: CoinConfig[] = defaultCoinConfig.map((x) => x("TESTKUDOS")); +  exchange.addCoinConfigList(coinConfig); + +  await exchange.start(); +  await exchange.pingUntilAvailable(); + +  merchant.addExchange(exchange); + +  await merchant.start(); +  await merchant.pingUntilAvailable(); + +  await merchant.addInstance({ +    id: "default", +    name: "Default Instance", +    paytoUris: [getPayto("merchant-default")], +    defaultWireTransferDelay: Duration.toTalerProtocolDuration( +      Duration.fromSpec({ minutes: 1 }), +    ), +  }); + +  await merchant.addInstance({ +    id: "minst1", +    name: "minst1", +    paytoUris: [getPayto("minst1")], +    defaultWireTransferDelay: Duration.toTalerProtocolDuration( +      Duration.fromSpec({ minutes: 1 }), +    ), +  }); + +  console.log("setup done!"); +} diff --git a/packages/taler-wallet-cli/src/index.ts b/packages/taler-wallet-cli/src/index.ts index 40f2273a7..8fad3bdbf 100644 --- a/packages/taler-wallet-cli/src/index.ts +++ b/packages/taler-wallet-cli/src/index.ts @@ -48,6 +48,7 @@ import {  import {    CryptoDispatcher,    getDefaultNodeWallet, +  getDefaultNodeWallet2,    getErrorDetailFromException,    nativeCrypto,    NodeHttpLib, @@ -866,6 +867,34 @@ advancedCli    });  advancedCli +  .subcommand("benchInternal", "bench-internal", { +    help: "Run the 'bench-internal' benchmark", +  }) +  .action(async (args) => { +    const myHttpLib = new NodeHttpLib(); +    myHttpLib.setThrottling(false); +    const res = await getDefaultNodeWallet2({ +      // No persistent DB storage. +      persistentStoragePath: undefined, +      httpLib: myHttpLib, +    }); +    const wallet = res.wallet; +    await wallet.client.call(WalletApiOperation.InitWallet, {}); +    await wallet.client.call(WalletApiOperation.RunIntegrationTest, { +      amountToSpend: "TESTKUDOS:1", +      amountToWithdraw: "TESTKUDOS:3", +      bankBaseUrl: "http://localhost:8082/", +      bankAccessApiBaseUrl: "http://localhost:8082/taler-bank-access/", +      exchangeBaseUrl: "http://localhost:8081/", +      merchantBaseUrl: "http://localhost:8083/", +    }); +    await wallet.runTaskLoop({ +      stopWhenDone: true, +    }); +    wallet.stop(); +  }); + +advancedCli    .subcommand("bench1", "bench1", {      help: "Run the 'bench1' benchmark",    })  | 
