aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-harness/src/integrationtests/test-peer-to-peer-pull.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2023-08-03 19:24:04 +0200
committerFlorian Dold <florian@dold.me>2023-08-03 19:24:04 +0200
commitee47aa4837fedcaa8257b57138ea34fda220d2b7 (patch)
tree33fb9e52d148cdd30e234586fe77abecff3856cd /packages/taler-harness/src/integrationtests/test-peer-to-peer-pull.ts
parent57e86b759e0376238f993fea1617609977fefb46 (diff)
downloadwallet-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.ts14
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 &&