commit 5e2d0f4082ff9754981a1678c656407567232f6c
parent 2fa9a315c3d8da301fe7260b58abb9b049a6778b
Author: Antoine A <>
Date: Tue, 1 Apr 2025 10:46:51 +0200
checklist: improve wallet test flows
Diffstat:
2 files changed, 82 insertions(+), 31 deletions(-)
diff --git a/checklists/checklist-demo-upgrade.rst b/checklists/checklist-demo-upgrade.rst
@@ -23,6 +23,15 @@ Post-upgrade checks
taler-wallet-cli api 'runIntegrationTestV2' '{"exchangeBaseUrl":"https://exchange.demo.taler.net", "corebankApiBaseUrl": "https://bank.demo.taler.net", "merchantBaseUrl": "https://backend.demo.taler.net", "merchantAuthToken":"secret-token:sandbox"}'
+Basics
+^^^^^^
+
+- |democheck| Visit https://demo.taler.net/ to see if the landing page is displayed correctly
+- |democheck| landing language switcher
+- |democheck| Visit the wallet installation page, install the wallet
+- |democheck| see if the wallet presence indicator is updated correctly (in browsers).
+- |democheck| Visit https://exchange.demo.taler.net/terms to check ToS works
+
Wallets
^^^^^^^
@@ -33,15 +42,80 @@ We consider the following published wallets to be "production wallets":
* Android: Google Play / F-Droid / APK
* iOS: Apple Store / Testflight
+P2P payments
+^^^^^^^^^^^^
-Basics
-^^^^^^
+To run those test you need three wallets, you should ideally use three different platforms.
-- |democheck| Visit https://demo.taler.net/ to see if the landing page is displayed correctly
-- |democheck| landing language switcher
-- |democheck| Visit the wallet installation page, install the wallet
-- |democheck| see if the wallet presence indicator is updated correctly (in browsers).
-- |democheck| Visit https://exchange.demo.taler.net/terms to check ToS works
+TODO: some pay* interactions should become unnecessary in a future update: https://bugs.gnunet.org/view.php?id=9670
+TODO: check different kind of failure (aborted, expired, already complete by another wallet) are correctly shown
+
+The following flows need to be tested:
+
+Concurrent flow
+""""""""""""""""
+
+Test what happens when two wallets compete on the same payment.
+
+- initiate payment in wallet1 and save the URI
+- scan the QR code in wallet2 & wallet3
+- pay with wallet2 -> redirect to success
+- check wallet1 redirect to success
+- pay* with wallet3 -> redirect to failure
+- paste URI in wallet2 -> pay* -> redirect to success
+- paste URI in wallet3 -> pay* -> redirect to failure
+
+
+Abort flow
+""""""""""
+
+Test what happens when a payment is aborted.
+
+- initiate payment in wallet1 and save the URI
+- scan the QR code in wallet2
+- abort in wallet1 -> redirect to failure
+- pay* with wallet2 -> redirect to failure
+- paste URI in wallet3 -> pay* -> redirect to failure
+
+Expire flow
+"""""""""""
+
+Test what happens when a payment is expired.
+
+- initiate payment in wallet1 and save the URI
+- scan the QR code in wallet2
+- wait for the payment to expire
+- check wallet1 redirect to failure
+- pay* with wallet2 -> redirect to failure
+- paste URI in wallet3 -> pay* -> redirect to failure
+
+Checklist
+"""""""""
+
+- |democheck| pull payment (receive) concurrent flow
+- |democheck| pull payment (receive) abort flow
+- |democheck| pull payment (receive) expire flow
+
+- |democheck| push payment (send) concurrent flow
+- |democheck| push payment (send) abort flow
+- |democheck| push payment (send) expire flow
+
+- |democheck| check pull payment insufficient fund error on completion
+- |democheck| check push payment insufficient fund error on initiation
+
+- |democheck| sending money back from wallet to bank account
+- |democheck| wallet transaction history rendering
+- |democheck| delete history entry
+
+
+Exchange management
+"""""""""""""""""""
+
+- |democheck| Try to explicitly reload exchange keys (still needed?)
+- |democheck| Have wallet show ToS of an exchange
+- |democheck| Have wallet show PP of an exchange
+- |democheck| Remove exchange with remaining balance
+- |democheck| Check remaining balance is deposited into origin account
libeufin
@@ -176,29 +250,6 @@ Android Merchant PoS
* |democheck| Request and make payment, check payment confirmed
* |democheck| Create another order, delete/abort it without paying
-
-P2P payments
-^^^^^^^^^^^^
-
-- |democheck| generating push payment (to self is OK)
-- |democheck| accepting push payment (from self is OK)
-- |democheck| generating pull payment (to self is OK)
-- |democheck| accepting pull payment (from self is OK)
-- |democheck| sending money back from wallet to bank account
-- |democheck| wallet transaction history rendering
-- |democheck| delete history entry
-
-
-Wallet exchange management
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-- |democheck| Try to explicitly reload exchange keys (still needed?)
-- |democheck| Have wallet show ToS of an exchange
-- |democheck| Have wallet show PP of an exchange
-- |democheck| Remove exchange with remaining balance
-- |democheck| Check remaining balance is deposited into origin account
-
-
Auditor
^^^^^^^
diff --git a/taler-developer-manual.rst b/taler-developer-manual.rst
@@ -47,7 +47,7 @@ overview:
used by banks in the EU. Allows an exchange to interact with
European banks.
- * deploymerization: implementation of the "bank" API on top of
+ * depolymerization: implementation of the "bank" API on top of
blockchains, specifically Bitcoin and Ethereum. Allows an exchange
to interact with crypto-currencies.