From 6a4da88719bc7a1506433c1117b2402d2bd48f36 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Tue, 14 Feb 2023 11:16:58 +0100 Subject: wallet-core: expose more info about refund query --- packages/taler-harness/src/harness/helpers.ts | 49 +++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'packages/taler-harness/src/harness') 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; +} + +export async function withdrawViaBankV2( + t: GlobalTestState, + p: { + walletClient: WalletClient; + bank: BankService; + exchange: ExchangeServiceInterface; + amount: AmountString; + restrictAge?: number; + }, +): Promise { + 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. */ -- cgit v1.2.3