aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-harness/src/harness
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2023-02-14 11:16:58 +0100
committerFlorian Dold <florian@dold.me>2023-02-14 11:17:19 +0100
commit6a4da88719bc7a1506433c1117b2402d2bd48f36 (patch)
tree7094aed1a6a8e1fe85854225c8744c955d7d973c /packages/taler-harness/src/harness
parent6106caeba9e017242dfd334c34c8473aefb6ffb0 (diff)
downloadwallet-core-6a4da88719bc7a1506433c1117b2402d2bd48f36.tar.xz
wallet-core: expose more info about refund query
Diffstat (limited to 'packages/taler-harness/src/harness')
-rw-r--r--packages/taler-harness/src/harness/helpers.ts49
1 files changed, 49 insertions, 0 deletions
diff --git a/packages/taler-harness/src/harness/helpers.ts b/packages/taler-harness/src/harness/helpers.ts
index ad77ce6ca..c1ce463fa 100644
--- a/packages/taler-harness/src/harness/helpers.ts
+++ b/packages/taler-harness/src/harness/helpers.ts
@@ -29,6 +29,8 @@ import {
MerchantContractTerms,
Duration,
PreparePayResultType,
+ NotificationType,
+ WithdrawalGroupFinishedNotification,
} from "@gnu-taler/taler-util";
import {
BankAccessApi,
@@ -466,6 +468,53 @@ export async function startWithdrawViaBank(
// Some tests rely on the final withdraw failing.
}
+export interface WithdrawViaBankResult {
+ withdrawalFinishedCond: Promise<WithdrawalGroupFinishedNotification>;
+}
+
+export async function withdrawViaBankV2(
+ t: GlobalTestState,
+ p: {
+ walletClient: WalletClient;
+ bank: BankService;
+ exchange: ExchangeServiceInterface;
+ amount: AmountString;
+ restrictAge?: number;
+ },
+): Promise<WithdrawViaBankResult> {
+ const { walletClient: wallet, bank, exchange, amount } = p;
+
+ const user = await BankApi.createRandomBankUser(bank);
+ const wop = await BankAccessApi.createWithdrawalOperation(bank, user, amount);
+
+ // Hand it to the wallet
+
+ await wallet.client.call(WalletApiOperation.GetWithdrawalDetailsForUri, {
+ talerWithdrawUri: wop.taler_withdraw_uri,
+ restrictAge: p.restrictAge,
+ });
+
+ const withdrawalFinishedCond = wallet.waitForNotificationCond((x) =>
+ x.type === NotificationType.WithdrawGroupFinished ? x : false,
+ );
+
+ // Withdraw (AKA select)
+
+ await wallet.client.call(WalletApiOperation.AcceptBankIntegratedWithdrawal, {
+ exchangeBaseUrl: exchange.baseUrl,
+ talerWithdrawUri: wop.taler_withdraw_uri,
+ restrictAge: p.restrictAge,
+ });
+
+ // Confirm it
+
+ await BankApi.confirmWithdrawalOperation(bank, user, wop);
+
+ return {
+ withdrawalFinishedCond,
+ };
+}
+
/**
* Withdraw balance.
*/