commit ca1cc63dff297bbe3a8c07b65e1bf4933a7f9cf8
parent 9b415001ff6332d97586bc3c8d64900f74c8587b
Author: Florian Dold <florian@dold.me>
Date: Tue, 22 Apr 2025 14:07:41 +0200
harness: wait for finalizing(track) state in deposit
Diffstat:
7 files changed, 63 insertions(+), 72 deletions(-)
diff --git a/packages/taler-harness/src/integrationtests/test-age-restrictions-deposit.ts b/packages/taler-harness/src/integrationtests/test-age-restrictions-deposit.ts
@@ -19,17 +19,19 @@
*/
import {
AmountString,
- NotificationType,
TransactionMajorState,
TransactionMinorState,
} from "@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
-import { GlobalTestState, getTestHarnessPaytoForLabel } from "../harness/harness.js";
+import { defaultCoinConfig } from "../harness/denomStructures.js";
import {
createSimpleTestkudosEnvironmentV3,
withdrawViaBankV3,
} from "../harness/environments.js";
-import { defaultCoinConfig } from "../harness/denomStructures.js";
+import {
+ GlobalTestState,
+ getTestHarnessPaytoForLabel,
+} from "../harness/harness.js";
/**
* Run test for basic, bank-integrated withdrawal and payment.
@@ -64,21 +66,6 @@ export async function runAgeRestrictionsDepositTest(t: GlobalTestState) {
const depositTxId = dgIdResp.transactionId;
- const depositTrack = walletClient.waitForNotificationCond(
- (n) =>
- n.type == NotificationType.TransactionStateTransition &&
- n.transactionId == depositTxId &&
- n.newTxState.major == TransactionMajorState.Pending &&
- n.newTxState.minor == TransactionMinorState.Track,
- );
-
- const depositDone = walletClient.waitForNotificationCond(
- (n) =>
- n.type == NotificationType.TransactionStateTransition &&
- n.transactionId == depositTxId &&
- n.newTxState.major == TransactionMajorState.Done,
- );
-
const depositGroupResult = await walletClient.client.call(
WalletApiOperation.CreateDepositGroup,
{
@@ -90,13 +77,24 @@ export async function runAgeRestrictionsDepositTest(t: GlobalTestState) {
t.assertDeepEqual(depositGroupResult.transactionId, depositTxId);
- await depositTrack;
+ await walletClient.call(WalletApiOperation.TestingWaitTransactionState, {
+ transactionId: depositTxId,
+ txState: {
+ major: TransactionMajorState.Finalizing,
+ minor: TransactionMinorState.Track,
+ },
+ });
await exchange.runAggregatorOnceWithTimetravel({
timetravelMicroseconds: 1000 * 1000 * 60 * 60 * 3,
});
- await depositDone;
+ await walletClient.call(WalletApiOperation.TestingWaitTransactionState, {
+ transactionId: depositTxId,
+ txState: {
+ major: TransactionMajorState.Done,
+ },
+ });
const transactions = await walletClient.client.call(
WalletApiOperation.GetTransactions,
diff --git a/packages/taler-harness/src/integrationtests/test-deposit-merge.ts b/packages/taler-harness/src/integrationtests/test-deposit-merge.ts
@@ -28,17 +28,14 @@ import {
} from "@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
import {
- GlobalTestState,
- getTestHarnessPaytoForLabel,
-} from "../harness/harness.js";
-import {
createSimpleTestkudosEnvironmentV3,
withdrawViaBankV3,
} from "../harness/environments.js";
+import {
+ GlobalTestState,
+ getTestHarnessPaytoForLabel,
+} from "../harness/harness.js";
-/**
- * Run test for basic, bank-integrated withdrawal and payment.
- */
export async function runDepositMergeTest(t: GlobalTestState) {
// Set up test environment
@@ -266,11 +263,11 @@ export async function runDepositMergeTest(t: GlobalTestState) {
await d1Done;
/**
- * check deposit tx after 6 minute, first one should already be wired since default
+ * check deposit tx after 6 minute, first one should already be wired since default
* wire deadline is 5 minutes
- *
+ *
* other deposit should already be completed since it should use the same wire transfer
- *
+ *
*/
{
const d1Details = await walletClient.call(
diff --git a/packages/taler-harness/src/integrationtests/test-deposit.ts b/packages/taler-harness/src/integrationtests/test-deposit.ts
@@ -25,11 +25,14 @@ import {
j2s,
} from "@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
-import { GlobalTestState, getTestHarnessPaytoForLabel } from "../harness/harness.js";
import {
createSimpleTestkudosEnvironmentV3,
withdrawViaBankV3,
} from "../harness/environments.js";
+import {
+ GlobalTestState,
+ getTestHarnessPaytoForLabel,
+} from "../harness/harness.js";
/**
* Run test for basic, bank-integrated withdrawal and payment.
@@ -75,21 +78,6 @@ export async function runDepositTest(t: GlobalTestState) {
const depositTxId = dgIdResp.transactionId;
- const depositTrack = walletClient.waitForNotificationCond(
- (n) =>
- n.type == NotificationType.TransactionStateTransition &&
- n.transactionId == depositTxId &&
- n.newTxState.major == TransactionMajorState.Pending &&
- n.newTxState.minor == TransactionMinorState.Track,
- );
-
- const depositDone = walletClient.waitForNotificationCond(
- (n) =>
- n.type == NotificationType.TransactionStateTransition &&
- n.transactionId == depositTxId &&
- n.newTxState.major == TransactionMajorState.Done,
- );
-
const depositGroupResult = await walletClient.client.call(
WalletApiOperation.CreateDepositGroup,
{
@@ -105,7 +93,13 @@ export async function runDepositTest(t: GlobalTestState) {
console.log(`balances during deposit: ${j2s(balDuring)}`);
t.assertAmountEquals(balDuring.balances[0].pendingOutgoing, "TESTKUDOS:10");
- await depositTrack;
+ await walletClient.call(WalletApiOperation.TestingWaitTransactionState, {
+ transactionId: depositTxId,
+ txState: {
+ major: TransactionMajorState.Finalizing,
+ minor: TransactionMinorState.Track,
+ },
+ });
t.logStep("before-aggregator");
@@ -117,7 +111,12 @@ export async function runDepositTest(t: GlobalTestState) {
timetravelMicroseconds: 1000 * 1000 * 60 * 60 * 3,
});
- await depositDone;
+ await walletClient.call(WalletApiOperation.TestingWaitTransactionState, {
+ transactionId: depositTxId,
+ txState: {
+ major: TransactionMajorState.Done,
+ },
+ });
const transactions = await walletClient.client.call(
WalletApiOperation.GetTransactions,
diff --git a/packages/taler-harness/src/integrationtests/test-kyc-deposit-aggregate-implicit-auth.ts b/packages/taler-harness/src/integrationtests/test-kyc-deposit-aggregate-implicit-auth.ts
@@ -51,17 +51,15 @@ function adjustExchangeConfig(config: Configuration): void {
config.setString("KYC-CHECK-C1", "fallback", "FREEZE");
}
-export async function runKycDepositAggregateImplicitAuthTest(t: GlobalTestState) {
+export async function runKycDepositAggregateImplicitAuthTest(
+ t: GlobalTestState,
+) {
// Set up test environment
- const {
- walletClient,
- bankClient,
- exchange,
- amlKeypair,
- } = await createKycTestkudosEnvironment(t, {
- adjustExchangeConfig,
- });
+ const { walletClient, bankClient, exchange, amlKeypair } =
+ await createKycTestkudosEnvironment(t, {
+ adjustExchangeConfig,
+ });
// Withdraw digital cash into the wallet.
@@ -85,7 +83,7 @@ export async function runKycDepositAggregateImplicitAuthTest(t: GlobalTestState)
await walletClient.call(WalletApiOperation.TestingWaitTransactionState, {
transactionId: depositResp.transactionId,
txState: {
- major: TransactionMajorState.Pending,
+ major: TransactionMajorState.Finalizing,
minor: TransactionMinorState.Track,
},
});
diff --git a/packages/taler-harness/src/integrationtests/test-kyc-deposit-aggregate.ts b/packages/taler-harness/src/integrationtests/test-kyc-deposit-aggregate.ts
@@ -89,7 +89,7 @@ export async function runKycDepositAggregateTest(t: GlobalTestState) {
await walletClient.call(WalletApiOperation.TestingWaitTransactionState, {
transactionId: depositResp.transactionId,
txState: {
- major: TransactionMajorState.Pending,
+ major: TransactionMajorState.Finalizing,
minor: TransactionMinorState.Track,
},
});
diff --git a/packages/taler-harness/src/integrationtests/test-kyc-deposit-deposit-kyctransfer.ts b/packages/taler-harness/src/integrationtests/test-kyc-deposit-deposit-kyctransfer.ts
@@ -184,7 +184,7 @@ export async function runKycDepositDepositKyctransferTest(t: GlobalTestState) {
major: TransactionMajorState.Done,
},
{
- major: TransactionMajorState.Pending,
+ major: TransactionMajorState.Finalizing,
minor: TransactionMinorState.Track,
},
],
diff --git a/packages/taler-harness/src/integrationtests/test-wallet-blocked-deposit.ts b/packages/taler-harness/src/integrationtests/test-wallet-blocked-deposit.ts
@@ -19,20 +19,22 @@
*/
import {
AmountString,
- NotificationType,
TransactionMajorState,
TransactionMinorState,
j2s,
} from "@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
import { CoinConfig } from "../harness/denomStructures.js";
-import { GlobalTestState, getTestHarnessPaytoForLabel } from "../harness/harness.js";
import {
createSimpleTestkudosEnvironmentV3,
createWalletDaemonWithClient,
makeTestPaymentV2,
withdrawViaBankV3,
} from "../harness/environments.js";
+import {
+ GlobalTestState,
+ getTestHarnessPaytoForLabel,
+} from "../harness/harness.js";
const coinCommon = {
cipher: "RSA" as const,
@@ -131,20 +133,17 @@ export async function runWalletBlockedDepositTest(t: GlobalTestState) {
console.log(`create resp: ${j2s(depositCreateResp)}`);
- const depositTrackCond = w1.waitForNotificationCond((n) => {
- return (
- n.type === NotificationType.TransactionStateTransition &&
- n.transactionId === depositCreateResp.transactionId &&
- n.newTxState.major === TransactionMajorState.Pending &&
- n.newTxState.minor === TransactionMinorState.Track
- );
- });
-
await w1.call(WalletApiOperation.ApplyDevExperiment, {
devExperimentUri: "taler://dev-experiment/stop-block-refresh",
});
- await depositTrackCond;
+ await w1.call(WalletApiOperation.TestingWaitTransactionState, {
+ transactionId: depositCreateResp.transactionId,
+ txState: {
+ major: TransactionMajorState.Finalizing,
+ minor: TransactionMinorState.Track,
+ },
+ });
}
runWalletBlockedDepositTest.suites = ["wallet"];