diff options
author | Florian Dold <florian@dold.me> | 2024-09-17 15:02:27 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2024-09-17 15:02:27 +0200 |
commit | 3163d7a41f99c022a7fc75b7d82ae964b6746e88 (patch) | |
tree | c39065b8b6d94a6b8c38a9129b0a54bfb13d7b05 | |
parent | 88a66a4387fa2f70f2a53e4b72be46e3c5196762 (diff) |
harness: test for the withdrawal prepare step
3 files changed, 80 insertions, 1 deletions
diff --git a/packages/taler-harness/src/integrationtests/test-wallet-balance.ts b/packages/taler-harness/src/integrationtests/test-wallet-balance.ts index c37a6e482..a8e62aee8 100644 --- a/packages/taler-harness/src/integrationtests/test-wallet-balance.ts +++ b/packages/taler-harness/src/integrationtests/test-wallet-balance.ts @@ -21,7 +21,6 @@ import { Amounts, Duration, MerchantApiClient, - MerchantContractTerms, PreparePayResultType, TalerMerchantApi, } from "@gnu-taler/taler-util"; diff --git a/packages/taler-harness/src/integrationtests/test-withdrawal-prepare.ts b/packages/taler-harness/src/integrationtests/test-withdrawal-prepare.ts new file mode 100644 index 000000000..d11ed0b8f --- /dev/null +++ b/packages/taler-harness/src/integrationtests/test-withdrawal-prepare.ts @@ -0,0 +1,78 @@ +/* + This file is part of GNU Taler + (C) 2020 Taler Systems S.A. + + GNU Taler is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> + */ + +/** + * Imports. + */ +import { j2s, Logger } from "@gnu-taler/taler-util"; +import { WalletApiOperation } from "@gnu-taler/taler-wallet-core"; +import { GlobalTestState } from "../harness/harness.js"; +import { createSimpleTestkudosEnvironmentV3 } from "../harness/helpers.js"; + +const logger = new Logger("test-withdrawal-prepare.ts"); + +/** + * Test the separate prepare step of a bank-integrated withdrawal. + */ +export async function runWithdrawalPrepareTest(t: GlobalTestState) { + // Set up test environment + + const { walletClient, bankClient, exchange } = + await createSimpleTestkudosEnvironmentV3(t); + + // Create a withdrawal operation + const user = await bankClient.createRandomBankUser(); + bankClient.setAuth(user); + const wop = await bankClient.createWithdrawalOperation( + user.username, + undefined, + ); + + const r1 = await walletClient.call( + WalletApiOperation.GetWithdrawalDetailsForUri, + { + talerWithdrawUri: wop.taler_withdraw_uri, + }, + ); + + console.log(j2s(r1)); + + t.assertTrue(!r1.amount); + + // Withdraw + + const prepRes = await walletClient.call( + WalletApiOperation.PrepareBankIntegratedWithdrawal, + { + talerWithdrawUri: wop.taler_withdraw_uri, + }, + ); + + logger.info(`Prep res: ${j2s(prepRes)}`); + + // Make sure that we can get the transaction details for the prepared transaction + + const txDetail = await walletClient.call( + WalletApiOperation.GetTransactionById, + { + transactionId: prepRes.transactionId, + }, + ); + + logger.info(`Transaction details: ${j2s(txDetail)}`); +} + +runWithdrawalPrepareTest.suites = ["wallet"]; diff --git a/packages/taler-harness/src/integrationtests/testrunner.ts b/packages/taler-harness/src/integrationtests/testrunner.ts index c9e31b046..8ae179701 100644 --- a/packages/taler-harness/src/integrationtests/testrunner.ts +++ b/packages/taler-harness/src/integrationtests/testrunner.ts @@ -139,6 +139,7 @@ import { runWithdrawalHandoverTest } from "./test-withdrawal-handover.js"; import { runWithdrawalHugeTest } from "./test-withdrawal-huge.js"; import { runWithdrawalIdempotentTest } from "./test-withdrawal-idempotent.js"; import { runWithdrawalManualTest } from "./test-withdrawal-manual.js"; +import { runWithdrawalPrepareTest } from "./test-withdrawal-prepare.js"; /** * Test runner. @@ -268,6 +269,7 @@ const allTests: TestMainFunction[] = [ runKycMerchantDepositTest, runKycMerchantAggregateTest, runKycDepositDepositKyctransferTest, + runWithdrawalPrepareTest, ]; export interface TestRunSpec { |