gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [taler-docs] branch master updated: Add wallet-core integration test cases
Date: Wed, 06 May 2020 16:25:20 +0200

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

torsten-grote pushed a commit to branch master
in repository docs.

The following commit(s) were added to refs/heads/master by this push:
     new ab650a3  Add wallet-core integration test cases
ab650a3 is described below

commit ab650a346997bba69ad9c45d3d86ad1fc907c8c8
Author: Torsten Grote <address@hidden>
AuthorDate: Wed May 6 11:24:58 2020 -0300

    Add wallet-core integration test cases
---
 core/api-merchant.rst           |  2 +-
 taler-merchant-api-tutorial.rst |  1 +
 taler-wallet.rst                | 54 ++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 55 insertions(+), 2 deletions(-)

diff --git a/core/api-merchant.rst b/core/api-merchant.rst
index 26c8175..34071e3 100644
--- a/core/api-merchant.rst
+++ b/core/api-merchant.rst
@@ -938,7 +938,7 @@ Receiving Payments
       exchange_url: string;
     }
 
-
+.. _order-abort:
 .. http:post:: /orders/$ORDER_ID/abort
 
   Abort paying for an order and obtain a refund for coins that
diff --git a/taler-merchant-api-tutorial.rst b/taler-merchant-api-tutorial.rst
index 34064a0..f97f96c 100644
--- a/taler-merchant-api-tutorial.rst
+++ b/taler-merchant-api-tutorial.rst
@@ -279,6 +279,7 @@ This code snipped illustrates giving a refund:
 
 
 .. index:: repurchase
+.. _repurchase:
 
 Repurchase detection and fulfillment URLs
 =========================================
diff --git a/taler-wallet.rst b/taler-wallet.rst
index 379dba0..11167ea 100644
--- a/taler-wallet.rst
+++ b/taler-wallet.rst
@@ -293,8 +293,11 @@ Refunds
     }
 
 
+Integration Tests
+=================
+
 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>`__).
@@ -356,3 +359,52 @@ top-level command and not the subcommand:
   # 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/
 
+Test Cases
+----------
+
+Things we already have tests for:
+
+* Can the wallet recoup coins and spend them?
+  [`link 
<https://git.taler.net/wallet-core.git/tree/integrationtests/test-recoup.sh>`__]
+
+Things we still need tests for:
+
+* Does the wallet do retries correctly when the exchange is not reachable?
+  Or when the merchant is not reachable?  Or the bank?
+  This can be tested by temporarily killing those services.
+* How does the wallet deal with processing the same ``taler://(pay|withdraw)`` 
URI twice?
+* Test tipping (accepting/refusing a tip)
+* Test refunds
+* Test for :ref:`session-based payments <repurchase>`
+* Test case for auto-refunds
+  (scenario where the vending machine finds out that its motor is broken,
+  so it automatically gives a refund)
+* Does the wallet report "insufficient balance" correctly
+  (as opposed to, say, crashing)?
+* Perf tests:  How does the wallet handle withdrawing a *LOT* of coins?
+* Are the transaction history and pending operations reported correctly?
+
+Tests for things the wallet doesn't handle correctly yet:
+
+* What happens if the wallet double-spends a coin?
+  (Easy to test by copying the wallet DB before spending
+  and then running a spend again with the old DB).
+* What happens when a reserve is changed between accepting withdrawal
+  and actually withdrawing coins?
+  (This is harder to test.  Might not be possible with the current CLI.
+  The idea would be be to have some ``--inhibit=withdraw`` flag
+  that tells the wallet to not actually withdraw,
+  so we can change the reserve state and then resume the wallet.)
+* What happens if the exchange suddenly has a completely new list of 
denominations on offer?
+* What happens if the exchange changes its master public key?
+  The wallet *should* handle this gracefully
+  even if we have coins with that exchange,
+  provided that the old denominations can be recouped.
+  (That one is pretty difficult!)
+* Does the wallet handle :ref:`payment aborts <order-abort>` correctly?
+
+There are test cases that require us to modify the communication between the 
wallet and exchange.
+
+* What does the wallet do when the exchange/merchant announce an incompatible 
protocol version?
+* What happens if some signature made by the exchange/merchant is garbage?
+* What if the exchange reports a double-spend and the proof it gives us is 
invalid?

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

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