taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

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:
Mpackages/taler-harness/src/integrationtests/test-age-restrictions-deposit.ts | 38++++++++++++++++++--------------------
Mpackages/taler-harness/src/integrationtests/test-deposit-merge.ts | 17+++++++----------
Mpackages/taler-harness/src/integrationtests/test-deposit.ts | 35+++++++++++++++++------------------
Mpackages/taler-harness/src/integrationtests/test-kyc-deposit-aggregate-implicit-auth.ts | 18++++++++----------
Mpackages/taler-harness/src/integrationtests/test-kyc-deposit-aggregate.ts | 2+-
Mpackages/taler-harness/src/integrationtests/test-kyc-deposit-deposit-kyctransfer.ts | 2+-
Mpackages/taler-harness/src/integrationtests/test-wallet-blocked-deposit.ts | 23+++++++++++------------
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"];