aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2024-09-17 15:02:27 +0200
committerFlorian Dold <florian@dold.me>2024-09-17 15:02:27 +0200
commit3163d7a41f99c022a7fc75b7d82ae964b6746e88 (patch)
treec39065b8b6d94a6b8c38a9129b0a54bfb13d7b05
parent88a66a4387fa2f70f2a53e4b72be46e3c5196762 (diff)
harness: test for the withdrawal prepare step
-rw-r--r--packages/taler-harness/src/integrationtests/test-wallet-balance.ts1
-rw-r--r--packages/taler-harness/src/integrationtests/test-withdrawal-prepare.ts78
-rw-r--r--packages/taler-harness/src/integrationtests/testrunner.ts2
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 {