[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-docs] 02/02: instructions for integration tests with the wallet
From: |
gnunet |
Subject: |
[taler-docs] 02/02: instructions for integration tests with the wallet |
Date: |
Tue, 24 Mar 2020 13:29:25 +0100 |
This is an automated email from the git hooks/post-receive script.
dold pushed a commit to branch master
in repository docs.
commit 149de84d66c86fdd324bb4fe6eb239651c69b78a
Author: Florian Dold <address@hidden>
AuthorDate: Tue Mar 24 17:58:47 2020 +0530
instructions for integration tests with the wallet
---
taler-wallet.rst | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)
diff --git a/taler-wallet.rst b/taler-wallet.rst
index bb9b34e..995237b 100644
--- a/taler-wallet.rst
+++ b/taler-wallet.rst
@@ -78,3 +78,64 @@ APIs and Data Formats
=====================
*TBD.*
+
+
+
+Integration Test Example
+========================
+
+Integration tests can be done with the low-level wallet commands. To select
which coins and denominations
+to use, the wallet can dump the coins in an easy-to-process format
(`CoinDumpJson
<https://git.taler.net/wallet-core.git/tree/src/types/talerTypes.ts#n734>`__).
+
+The following example does a simple withdrawal recoup:
+
+.. code-block:: sh
+
+ # Withdraw digital cash
+ $ taler-wallet-cli --wallet-db=mydb.json testing withdraw \
+ -b https://bank.int.taler.net/ \
+ -e https://exchange.int.taler.net/ \
+ -a INTKUDOS:10
+
+ $ coins=$(taler-wallet-cli --wallet-db=mydb.json advanced dump-coins)
+
+ # Find coin we want to revoke
+ $ rc=$(echo "$coins" | jq -r '[.coins[] | select((.denom_value ==
"INTKUDOS:5"))][0] | .coin_pub')
+ # Find the denom
+ $ rd=$(echo "$coins" | jq -r '[.coins[] | select((.denom_value ==
"INTKUDOS:5"))][0] | .denom_pub_hash')
+ # Find all other coins, which will be suspended
+ $ susp=$(echo "$coins" | jq --arg rc "$rc" '[.coins[] | select(.coin_pub !=
$rc) | .coin_pub]')
+
+ # The exchange revokes the denom
+ $ taler-exchange-keyup -r $rd
+ $ taler-deployment-restart
+
+ # Now we suspend the other coins, so later we will pay with the recouped coin
+ $ taler-wallet-cli --wallet-db=mydb.json advanced suspend-coins "$susp"
+
+ # Update exchange /keys so recoup gets scheduled
+ $ taler-wallet-cli --wallet-db=mydb.json exchanges update -f
https://exchange.int.taler.net/
+
+ # Block until scheduled operations are done
+ $ taler-wallet-cli --wallet-db=mydb.json run-until-done
+
+ # Now we buy something, only the coins resulting from recouped will be
+ # used, as other ones are suspended
+ $ taler-wallet-cli --wallet-db=mydb.json testing test-pay -m
https://backend.int.taler.net/ -k sandbox -a "INTKUDOS:1" -s "foo"
+ $ taler-wallet-cli --wallet-db=mydb.json run-until-done
+
+
+To test refreshing, force a refresh:
+
+.. code-block:: sh
+
+ $ taler-wallet-cli --wallet-db=mydb.json advanced force-refresh "$coin_pub"
+
+
+To test zombie coins, use the timetravel option, it **must** be passed to the
top-level command and not the subcommand:
+
+.. code-block:: sh
+
+ # Update exchange /keys with time travel, value in microseconds
+ $ taler-wallet-cli --timetravel=1000000 --wallet-db=mydb.json exchanges
update -f https://exchange.int.taler.net/
+
--
To stop receiving notification emails like this one, please contact
address@hidden.