diff options
Diffstat (limited to 'packages/taler-wallet-cli/src/integrationtests')
3 files changed, 105 insertions, 0 deletions
diff --git a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts b/packages/taler-wallet-cli/src/integrationtests/libeufin.ts index 383014b93..18972bdd0 100644 --- a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts +++ b/packages/taler-wallet-cli/src/integrationtests/libeufin.ts @@ -154,6 +154,14 @@ export interface LibeufinBankAccountImportDetails { connectionName: string; } +export interface BankAccountInfo { + iban: string; + bic: string; + name: string; + currency: string; + label: string; +} + export interface LibeufinPreparedPaymentDetails { creditorIban: string; creditorBic: string; @@ -758,6 +766,15 @@ export namespace LibeufinSandboxApi { }); } + export async function createBankAccount( + libeufinSandboxService: LibeufinSandboxServiceInterface, + req: BankAccountInfo, + ) { + const baseUrl = libeufinSandboxService.baseUrl; + let url = new URL(`admin/bank-accounts/${req.label}`, baseUrl); + await axios.post(url.href, req); + } + export async function createEbicsSubscriber( libeufinSandboxService: LibeufinSandboxServiceInterface, req: CreateEbicsSubscriberRequest, @@ -834,6 +851,18 @@ export namespace LibeufinSandboxApi { const res = await axios.get(url.href); return res.data as SandboxAccountTransactions; } + + export async function getAccountInfoWithBalance( + libeufinSandboxService: LibeufinSandboxServiceInterface, + accountLabel: string, + ): Promise<any> { + const baseUrl = libeufinSandboxService.baseUrl; + let url = new URL( + `admin/bank-accounts/${accountLabel}`, + baseUrl, + ); + return await axios.get(url.href); + } } export interface SandboxAccountTransactions { diff --git a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-sandbox-transactions.ts b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-sandbox-transactions.ts new file mode 100644 index 000000000..fc558af14 --- /dev/null +++ b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-sandbox-transactions.ts @@ -0,0 +1,74 @@ +/* + 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 { GlobalTestState } from "./harness"; +import { + NexusUserBundle, + LibeufinNexusApi, + LibeufinNexusService, + LibeufinSandboxService, + LibeufinSandboxApi, + findNexusPayment, +} from "./libeufin"; + +export async function runLibeufinApiSandboxTransactionsTest(t: GlobalTestState) { + + const sandbox = await LibeufinSandboxService.create(t, { + httpPort: 5012, + databaseJdbcUri: `jdbc:sqlite:${t.testDir}/libeufin-sandbox.sqlite3`, + }); + await sandbox.start(); + await sandbox.pingUntilAvailable(); + await LibeufinSandboxApi.createBankAccount(sandbox, { + iban: "DE71500105179674997361", + bic: "BELADEBEXXX", + name: "Mock Name", + label: "mock-account", + currency: "EUR" + }); + await LibeufinSandboxApi.bookPayment2(sandbox, { + creditorIban: "DE71500105179674997361", + creditorBic: "BELADEBEXXX", + creditorName: "mock", + debtorIban: "DE84500105176881385584", + debtorBic: "BELADEBEXXX", + debtorName: "mock2", + subject: "mock subject", + currency: "EUR", + amount: "1", + uid: "mock", + direction: "CRDT", + }); + await LibeufinSandboxApi.bookPayment2(sandbox, { + creditorIban: "DE71500105179674997361", + creditorBic: "BELADEBEXXX", + creditorName: "mock", + debtorIban: "DE84500105176881385584", + debtorBic: "BELADEBEXXX", + debtorName: "mock2", + subject: "mock subject 2", + currency: "EUR", + amount: "1.1", + uid: "mock2", + direction: "CRDT", + }); + let ret = await LibeufinSandboxApi.getAccountInfoWithBalance(sandbox, "mock-account"); + t.assertAmountEquals(ret.data.balance, "EUR:2.1"); +} +runLibeufinApiSandboxTransactionsTest.suites = ["libeufin"]; diff --git a/packages/taler-wallet-cli/src/integrationtests/testrunner.ts b/packages/taler-wallet-cli/src/integrationtests/testrunner.ts index b92257572..5e0cb9f57 100644 --- a/packages/taler-wallet-cli/src/integrationtests/testrunner.ts +++ b/packages/taler-wallet-cli/src/integrationtests/testrunner.ts @@ -66,6 +66,7 @@ import { runLibeufinApiSchedulingTest } from "./test-libeufin-api-scheduling"; import { runLibeufinApiBankconnectionTest } from "./test-libeufin-api-bankconnection"; import { runLibeufinApiUsersTest } from "./test-libeufin-api-users"; import { runLibeufinApiBankaccountTest } from "./test-libeufin-api-bankaccount"; +import { runLibeufinApiSandboxTransactionsTest } from "./test-libeufin-api-sandbox-transactions"; import { runDepositTest } from "./test-deposit"; import CancellationToken from "cancellationtoken"; import { runMerchantInstancesTest } from "./test-merchant-instances"; @@ -106,6 +107,7 @@ const allTests: TestMainFunction[] = [ runLibeufinApiUsersTest, runLibeufinApiBankaccountTest, runLibeufinApiBankconnectionTest, + runLibeufinApiSandboxTransactionsTest, runMerchantExchangeConfusionTest, runMerchantInstancesTest, runMerchantInstancesDeleteTest, |