diff options
author | Florian Dold <florian@dold.me> | 2024-03-05 10:30:25 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2024-03-05 10:30:30 +0100 |
commit | 63aedafd841f3a3d7d3b7974d4e5b8fbd02afd3d (patch) | |
tree | 98a92ffb670e63f2253ee9b2a068f7234634eda2 /packages/taler-harness/src/integrationtests | |
parent | 187031b9336e3c81aaa05c79e345adf5ac997980 (diff) | |
download | wallet-core-63aedafd841f3a3d7d3b7974d4e5b8fbd02afd3d.tar.xz |
wallet-core: have balance item even on zero balance
Also add a test for this.
Diffstat (limited to 'packages/taler-harness/src/integrationtests')
3 files changed, 69 insertions, 1 deletions
diff --git a/packages/taler-harness/src/integrationtests/test-wallet-balance-zero.ts b/packages/taler-harness/src/integrationtests/test-wallet-balance-zero.ts new file mode 100644 index 000000000..7d65b60cf --- /dev/null +++ b/packages/taler-harness/src/integrationtests/test-wallet-balance-zero.ts @@ -0,0 +1,64 @@ +/* + 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 } from "@gnu-taler/taler-util"; +import { WalletApiOperation } from "@gnu-taler/taler-wallet-core"; +import { makeNoFeeCoinConfig } from "../harness/denomStructures.js"; +import { GlobalTestState } from "../harness/harness.js"; +import { + createSimpleTestkudosEnvironmentV2, + makeTestPaymentV2, + withdrawViaBankV2, +} from "../harness/helpers.js"; + +/** + * Related bugs: + * https://bugs.taler.net/n/8323 + */ +export async function runWalletBalanceZeroTest(t: GlobalTestState) { + // Set up test environment + + const coinConfig = makeNoFeeCoinConfig("TESTKUDOS"); + console.log(`coin config ${j2s(coinConfig)}`); + const { merchant, walletClient, exchange, bank } = + await createSimpleTestkudosEnvironmentV2(t, coinConfig); + + const wres = await withdrawViaBankV2(t, { + amount: "TESTKUDOS:10", + bank, + exchange, + walletClient, + }); + await wres.withdrawalFinishedCond; + + await makeTestPaymentV2(t, { + walletClient, + merchant, + order: { + summary: "Hello, World!", + amount: "TESTKUDOS:10", + }, + }); + + const bal = await walletClient.call(WalletApiOperation.GetBalances, {}); + console.log(`${j2s(bal)}`); + t.assertAmountEquals(bal.balances[0].available, "TESTKUDOS:0"); +} + +runWalletBalanceZeroTest.suites = ["wallet"]; diff --git a/packages/taler-harness/src/integrationtests/test-wallet-balance.ts b/packages/taler-harness/src/integrationtests/test-wallet-balance.ts index c4ca94dc0..0e4452892 100644 --- a/packages/taler-harness/src/integrationtests/test-wallet-balance.ts +++ b/packages/taler-harness/src/integrationtests/test-wallet-balance.ts @@ -32,7 +32,9 @@ import { } from "../harness/helpers.js"; /** - * Test for wallet balance error messages / different types of insufficient balance. + * Test wallet: + * - balance error messages + * - different types of insufficient balance. * * Related bugs: * https://bugs.taler.net/n/7299 diff --git a/packages/taler-harness/src/integrationtests/testrunner.ts b/packages/taler-harness/src/integrationtests/testrunner.ts index 07bf8e34d..803e68e6b 100644 --- a/packages/taler-harness/src/integrationtests/testrunner.ts +++ b/packages/taler-harness/src/integrationtests/testrunner.ts @@ -87,6 +87,7 @@ import { runTermOfServiceFormatTest } from "./test-tos-format.js"; import { runWalletBackupBasicTest } from "./test-wallet-backup-basic.js"; import { runWalletBackupDoublespendTest } from "./test-wallet-backup-doublespend.js"; import { runWalletBalanceNotificationsTest } from "./test-wallet-balance-notifications.js"; +import { runWalletBalanceZeroTest } from "./test-wallet-balance-zero.js"; import { runWalletBalanceTest } from "./test-wallet-balance.js"; import { runWalletCliTerminationTest } from "./test-wallet-cli-termination.js"; import { runWalletConfigTest } from "./test-wallet-config.js"; @@ -202,6 +203,7 @@ const allTests: TestMainFunction[] = [ runWalletConfigTest, runWalletObservabilityTest, runWalletDevExperimentsTest, + runWalletBalanceZeroTest, ]; export interface TestRunSpec { |