[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-wallet-core] branch master updated: wallet-core: fix auto-refund state machine,
gnunet <=