Testing Sandbox CLI wire transfer.

This commit is contained in:
MS 2021-08-23 03:31:48 -11:00
parent b71addf5e0
commit 39cbad89bb
No known key found for this signature in database
GPG Key ID: 8D526861953F4C0F
3 changed files with 92 additions and 0 deletions

View File

@ -229,6 +229,23 @@ export class LibeufinSandboxService implements LibeufinSandboxServiceInterface {
); );
} }
async makeTransaction(
debit: string,
credit: string,
amount: string,
subject: string,): Promise<string> {
const stdout = await sh(
this.globalTestState,
"libeufin-sandbox-maketransfer",
`libeufin-sandbox make-transaction --debit-account=${debit} --credit-account=${credit} ${amount} "${subject}"`,
{
...process.env,
LIBEUFIN_SANDBOX_DB_CONNECTION: this.sandboxConfig.databaseJdbcUri,
},
);
return stdout;
}
async pingUntilAvailable(): Promise<void> { async pingUntilAvailable(): Promise<void> {
const url = `${this.baseUrl}config`; const url = `${this.baseUrl}config`;
await pingProc(this.sandboxProc, url, "libeufin-sandbox"); await pingProc(this.sandboxProc, url, "libeufin-sandbox");
@ -780,6 +797,7 @@ interface NewTalerWireGatewayReq {
} }
export namespace LibeufinSandboxApi { export namespace LibeufinSandboxApi {
export async function rotateKeys( export async function rotateKeys(
libeufinSandboxService: LibeufinSandboxServiceInterface, libeufinSandboxService: LibeufinSandboxServiceInterface,
hostID: string, hostID: string,

View File

@ -0,0 +1,72 @@
/*
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 runLibeufinSandboxWireTransferCliTest(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.createBankAccount(sandbox, {
iban: "DE71500105179674997364",
bic: "BELADEBEXXX",
name: "Mock Name 2",
label: "mock-account-2",
currency: "EUR"
});
await sandbox.makeTransaction(
"mock-account", "mock-account-2", "EUR:1", "one!"
);
await sandbox.makeTransaction(
"mock-account", "mock-account-2", "EUR:1", "two!"
);
await sandbox.makeTransaction(
"mock-account", "mock-account-2", "EUR:1", "three!"
);
await sandbox.makeTransaction(
"mock-account-2", "mock-account", "EUR:1", "Give one back."
);
await sandbox.makeTransaction(
"mock-account-2", "mock-account", "EUR:0.11", "Give fraction back."
);
let ret = await LibeufinSandboxApi.getAccountInfoWithBalance(sandbox, "mock-account-2");
console.log(ret.data.balance)
t.assertTrue(ret.data.balance == "EUR:1.89")
}
runLibeufinSandboxWireTransferCliTest.suites = ["libeufin"];

View File

@ -70,6 +70,7 @@ import { runLibeufinApiBankconnectionTest } from "./test-libeufin-api-bankconnec
import { runLibeufinApiUsersTest } from "./test-libeufin-api-users"; import { runLibeufinApiUsersTest } from "./test-libeufin-api-users";
import { runLibeufinApiBankaccountTest } from "./test-libeufin-api-bankaccount"; import { runLibeufinApiBankaccountTest } from "./test-libeufin-api-bankaccount";
import { runLibeufinApiSandboxTransactionsTest } from "./test-libeufin-api-sandbox-transactions"; import { runLibeufinApiSandboxTransactionsTest } from "./test-libeufin-api-sandbox-transactions";
import { runLibeufinSandboxWireTransferCliTest } from "./test-libeufin-sandbox-wire-transfer-cli";
import { runDepositTest } from "./test-deposit"; import { runDepositTest } from "./test-deposit";
import CancellationToken from "cancellationtoken"; import CancellationToken from "cancellationtoken";
import { runMerchantInstancesTest } from "./test-merchant-instances"; import { runMerchantInstancesTest } from "./test-merchant-instances";
@ -117,6 +118,7 @@ const allTests: TestMainFunction[] = [
runLibeufinApiBankaccountTest, runLibeufinApiBankaccountTest,
runLibeufinApiBankconnectionTest, runLibeufinApiBankconnectionTest,
runLibeufinApiSandboxTransactionsTest, runLibeufinApiSandboxTransactionsTest,
runLibeufinSandboxWireTransferCliTest,
runMerchantExchangeConfusionTest, runMerchantExchangeConfusionTest,
runMerchantInstancesTest, runMerchantInstancesTest,
runMerchantInstancesDeleteTest, runMerchantInstancesDeleteTest,