gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] branch master updated: integration test


From: gnunet
Subject: [taler-wallet-core] branch master updated: integration test
Date: Thu, 03 Sep 2020 22:52:49 +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 97541090 integration test
97541090 is described below

commit 9754109004f37a789f7a00fa6c1073d22e089484
Author: Florian Dold <florian.dold@gmail.com>
AuthorDate: Fri Sep 4 02:22:44 2020 +0530

    integration test
---
 .../taler-integrationtests/src/test-revocation.ts  | 122 +++++++++++++++++++++
 1 file changed, 122 insertions(+)

diff --git a/packages/taler-integrationtests/src/test-revocation.ts 
b/packages/taler-integrationtests/src/test-revocation.ts
new file mode 100644
index 00000000..32ac3f0d
--- /dev/null
+++ b/packages/taler-integrationtests/src/test-revocation.ts
@@ -0,0 +1,122 @@
+/*
+ This file is part of GNU Taler
+ (C) 2020 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 {
+  runTest,
+  GlobalTestState,
+  MerchantPrivateApi,
+  ExchangeService,
+  MerchantService,
+  WalletCli,
+} from "./harness";
+import {
+  createSimpleTestkudosEnvironment,
+  withdrawViaBank,
+  makeTestPayment,
+} from "./helpers";
+import { CoinDumpJson } from "taler-wallet-core";
+
+async function revokeAllWalletCoins(req: {
+  wallet: WalletCli,
+  exchange: ExchangeService,
+  merchant: MerchantService,
+}): Promise<void> {
+  const { wallet, exchange, merchant } = req;
+  const coinDump = await wallet.dumpCoins();
+  console.log(coinDump);
+  const usedDenomHashes = new Set<string>();
+  for (const coin of coinDump.coins) {
+    usedDenomHashes.add(coin.denom_pub_hash);
+  }
+
+  await exchange.stop();
+
+  for (const x of usedDenomHashes.values()) {
+    await exchange.revokeDenomination(x);
+  }
+
+  await exchange.keyup();
+
+  await exchange.start();
+  await exchange.pingUntilAvailable();
+  await merchant.stop();
+  await merchant.start();
+  await merchant.pingUntilAvailable();
+}
+
+/**
+ * Basic time travel test.
+ */
+runTest(async (t: GlobalTestState) => {
+  // Set up test environment
+
+  const {
+    wallet,
+    bank,
+    exchange,
+    merchant,
+  } = await createSimpleTestkudosEnvironment(t);
+
+  // Withdraw digital cash into the wallet.
+
+  await withdrawViaBank(t, { wallet, bank, exchange, amount: "TESTKUDOS:15" });
+
+  await revokeAllWalletCoins({ wallet, exchange, merchant });
+
+  // FIXME: this shouldn't be necessary once https://bugs.taler.net/n/6565
+  // is implemented.
+  await wallet.forceUpdateExchange({ exchangeBaseUrl: exchange.baseUrl });
+  await wallet.runUntilDone();
+  await wallet.runUntilDone();
+  const bal = await wallet.getBalances();
+  console.log("wallet balance", bal);
+
+  const order = {
+    summary: "Buy me!",
+    amount: "TESTKUDOS:10",
+    fulfillment_url: "taler://fulfillment-success/thx",
+  };
+
+  await makeTestPayment(t, { wallet, merchant, order });
+
+  wallet.deleteDatabase();
+  await withdrawViaBank(t, { wallet, bank, exchange, amount: "TESTKUDOS:15" });
+
+  const coinDump = await wallet.dumpCoins();
+  console.log(coinDump);
+  const coinPubList = coinDump.coins.map((x) => x.coin_pub);
+  await wallet.forceRefresh({
+    coinPubList,
+  });
+  await wallet.runUntilDone();
+
+  await revokeAllWalletCoins({ wallet, exchange, merchant });
+
+  // FIXME: this shouldn't be necessary once https://bugs.taler.net/n/6565
+  // is implemented.
+  await wallet.forceUpdateExchange({ exchangeBaseUrl: exchange.baseUrl });
+  await wallet.runUntilDone();
+  await wallet.runUntilDone();
+  {
+    const bal = await wallet.getBalances();
+    console.log("wallet balance", bal);
+  }
+
+  await makeTestPayment(t, { wallet, merchant, order });
+});

-- 
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]