gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] branch master updated: wallet-core: fix auto-refund


From: gnunet
Subject: [taler-wallet-core] branch master updated: wallet-core: fix auto-refund state machine
Date: Mon, 17 Jun 2024 11:34:37 +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 b59e47246 wallet-core: fix auto-refund state machine
b59e47246 is described below

commit b59e472465440d95525e7e3d1225234525948b67
Author: Florian Dold <florian@dold.me>
AuthorDate: Mon Jun 17 11:34:32 2024 +0200

    wallet-core: fix auto-refund state machine
    
    Properly use the new finalizing state
---
 packages/taler-harness/src/integrationtests/test-refund-auto.ts | 6 +++++-
 packages/taler-wallet-core/src/pay-merchant.ts                  | 5 +++--
 packages/taler-wallet-core/src/testing.ts                       | 4 ++++
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/packages/taler-harness/src/integrationtests/test-refund-auto.ts 
b/packages/taler-harness/src/integrationtests/test-refund-auto.ts
index 6e02071af..582f30299 100644
--- a/packages/taler-harness/src/integrationtests/test-refund-auto.ts
+++ b/packages/taler-harness/src/integrationtests/test-refund-auto.ts
@@ -54,6 +54,8 @@ export async function runRefundAutoTest(t: GlobalTestState) {
 
   // Test case where the auto-refund happens
   {
+    t.logStep("start-test-autorefund");
+
     // Set up order.
     const orderResp = await merchantClient.createOrder({
       order: {
@@ -122,6 +124,8 @@ export async function runRefundAutoTest(t: GlobalTestState) 
{
 
   // Now test the case where the auto-refund just expires
 
+  t.logStep("start-test-expiry");
+
   {
     // Set up order.
     const orderResp = await merchantClient.createOrder({
@@ -165,7 +169,7 @@ export async function runRefundAutoTest(t: GlobalTestState) 
{
     await walletClient.call(WalletApiOperation.TestingWaitTransactionState, {
       transactionId: r1.transactionId,
       txState: {
-        major: TransactionMajorState.Pending,
+        major: TransactionMajorState.Finalizing,
         minor: TransactionMinorState.AutoRefund,
       },
     });
diff --git a/packages/taler-wallet-core/src/pay-merchant.ts 
b/packages/taler-wallet-core/src/pay-merchant.ts
index 5a0decd5c..118a338cc 100644
--- a/packages/taler-wallet-core/src/pay-merchant.ts
+++ b/packages/taler-wallet-core/src/pay-merchant.ts
@@ -1060,7 +1060,7 @@ async function storeFirstPaySuccess(
       if (protoAr) {
         const ar = Duration.fromTalerProtocolDuration(protoAr);
         logger.info("auto_refund present");
-        purchase.purchaseStatus = PurchaseStatus.PendingQueryingAutoRefund;
+        purchase.purchaseStatus = PurchaseStatus.FinalizingQueryingAutoRefund;
         purchase.autoRefundDeadline = timestampProtocolToDb(
           AbsoluteTime.toProtocolTimestamp(
             AbsoluteTime.addDuration(AbsoluteTime.now(), ar),
@@ -1460,6 +1460,7 @@ async function checkPaymentByProposalId(
     const paid =
       purchase.purchaseStatus === PurchaseStatus.Done ||
       purchase.purchaseStatus === PurchaseStatus.PendingQueryingRefund ||
+      purchase.purchaseStatus === PurchaseStatus.FinalizingQueryingAutoRefund 
||
       purchase.purchaseStatus === PurchaseStatus.PendingQueryingAutoRefund;
     const download = await expectProposalDownload(wex, purchase);
     return {
@@ -2113,8 +2114,8 @@ export async function processPurchase(
     case PurchaseStatus.PendingPayingReplay:
       return processPurchasePay(wex, proposalId);
     case PurchaseStatus.PendingQueryingRefund:
-    case PurchaseStatus.FinalizingQueryingAutoRefund:
       return processPurchaseQueryRefund(wex, purchase);
+    case PurchaseStatus.FinalizingQueryingAutoRefund:
     case PurchaseStatus.PendingQueryingAutoRefund:
       return processPurchaseAutoRefund(wex, purchase);
     case PurchaseStatus.AbortingWithRefund:
diff --git a/packages/taler-wallet-core/src/testing.ts 
b/packages/taler-wallet-core/src/testing.ts
index 899c4a8b2..057ac50cd 100644
--- a/packages/taler-wallet-core/src/testing.ts
+++ b/packages/taler-wallet-core/src/testing.ts
@@ -410,6 +410,7 @@ export async function waitUntilAllTransactionsFinal(
       switch (notif.newTxState.major) {
         case TransactionMajorState.Pending:
         case TransactionMajorState.Aborting:
+        case TransactionMajorState.Finalizing:
           return false;
         default:
           return true;
@@ -424,6 +425,7 @@ export async function waitUntilAllTransactionsFinal(
         switch (tx.txState.major) {
           case TransactionMajorState.Pending:
           case TransactionMajorState.Aborting:
+          case TransactionMajorState.Finalizing:
           case TransactionMajorState.Suspended:
           case TransactionMajorState.SuspendedAborting:
             logger.info(
@@ -497,6 +499,7 @@ export async function waitUntilGivenTransactionsFinal(
         }
         switch (tx.txState.major) {
           case TransactionMajorState.Pending:
+          case TransactionMajorState.Finalizing:
           case TransactionMajorState.Aborting:
           case TransactionMajorState.Suspended:
           case TransactionMajorState.SuspendedAborting:
@@ -542,6 +545,7 @@ export async function waitUntilRefreshesDone(
         }
         switch (tx.txState.major) {
           case TransactionMajorState.Pending:
+          case TransactionMajorState.Finalizing:
           case TransactionMajorState.Aborting:
           case TransactionMajorState.Suspended:
           case TransactionMajorState.SuspendedAborting:

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