taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

commit be901cc757f1b2ae79858ca7c39a5ec10850e984
parent c983426fabe4049d84133f7e982d6e34c7e912e5
Author: Antoine A <>
Date:   Sat, 29 Mar 2025 18:02:31 +0100

checklist: improve wallet test flows

Diffstat:
Mchecklists/checklist-demo-upgrade.rst | 111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------
Mtaler-developer-manual.rst | 2+-
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.