diff options
author | Florian Dold <florian@dold.me> | 2023-08-03 19:24:04 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2023-08-03 19:24:04 +0200 |
commit | ee47aa4837fedcaa8257b57138ea34fda220d2b7 (patch) | |
tree | 33fb9e52d148cdd30e234586fe77abecff3856cd /packages/taler-harness/src/integrationtests/test-peer-to-peer-pull.ts | |
parent | 57e86b759e0376238f993fea1617609977fefb46 (diff) | |
download | wallet-core-ee47aa4837fedcaa8257b57138ea34fda220d2b7.tar.xz |
fix integration tests
Instead of using the deprecated runUntilDone, we now wait
for specific notifications.
The old way doesn't work, since p2p push transactions are not considered
done until the counterparty has accepted the payment.
Diffstat (limited to 'packages/taler-harness/src/integrationtests/test-peer-to-peer-pull.ts')
-rw-r--r-- | packages/taler-harness/src/integrationtests/test-peer-to-peer-pull.ts | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/packages/taler-harness/src/integrationtests/test-peer-to-peer-pull.ts b/packages/taler-harness/src/integrationtests/test-peer-to-peer-pull.ts index 30287b51b..5b55b1de1 100644 --- a/packages/taler-harness/src/integrationtests/test-peer-to-peer-pull.ts +++ b/packages/taler-harness/src/integrationtests/test-peer-to-peer-pull.ts @@ -23,6 +23,7 @@ import { j2s, NotificationType, TransactionMajorState, + TransactionMinorState, WalletNotification, } from "@gnu-taler/taler-util"; import { WalletApiOperation } from "@gnu-taler/taler-wallet-core"; @@ -46,12 +47,14 @@ export async function runPeerToPeerPullTest(t: GlobalTestState) { const w1 = await createWalletDaemonWithClient(t, { name: "w1", + persistent: true, handleNotification(wn) { allW1Notifications.push(wn); }, }); const w2 = await createWalletDaemonWithClient(t, { name: "w2", + persistent: true, handleNotification(wn) { allW2Notifications.push(wn); }, @@ -89,6 +92,15 @@ export async function runPeerToPeerPullTest(t: GlobalTestState) { }, ); + const peerPullCreditReadyCond = wallet1.waitForNotificationCond( + (x) => x.type === NotificationType.TransactionStateTransition && + x.transactionId === resp.transactionId && + x.newTxState.major === TransactionMajorState.Pending && + x.newTxState.minor === TransactionMinorState.Ready, + ); + + await peerPullCreditReadyCond; + const checkResp = await wallet2.client.call( WalletApiOperation.PreparePeerPullDebit, { @@ -98,8 +110,6 @@ export async function runPeerToPeerPullTest(t: GlobalTestState) { console.log(`checkResp: ${j2s(checkResp)}`); - // FIXME: The wallet should emit a more appropriate notification here. - // Yes, it's technically a withdrawal. const peerPullCreditDoneCond = wallet1.waitForNotificationCond( (x) => x.type === NotificationType.TransactionStateTransition && x.transactionId === resp.transactionId && |