aboutsummaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2024-06-05 12:12:40 -0600
committerIván Ávalos <avalos@disroot.org>2024-06-05 14:18:37 -0600
commitdc5f99339c491a4f09ea7c627418cfb4b1c42990 (patch)
tree247348a796f318decdbda88704e23fb55f20d732 /packages
parent4433a2a6d7c9ac641d3a33a48774ee83732f9510 (diff)
downloadwallet-core-dc5f99339c491a4f09ea7c627418cfb4b1c42990.tar.xz
harness: refactor wallet-insufficient-balance + libeufin support
Diffstat (limited to 'packages')
-rw-r--r--packages/taler-harness/src/harness/helpers.ts5
-rw-r--r--packages/taler-harness/src/integrationtests/test-wallet-insufficient-balance.ts83
2 files changed, 18 insertions, 70 deletions
diff --git a/packages/taler-harness/src/harness/helpers.ts b/packages/taler-harness/src/harness/helpers.ts
index 4e3ce66b9..d194b0d36 100644
--- a/packages/taler-harness/src/harness/helpers.ts
+++ b/packages/taler-harness/src/harness/helpers.ts
@@ -116,6 +116,8 @@ export interface EnvOptions {
mixedAgeRestriction?: boolean;
+ skipWireFeeCreation?: boolean;
+
additionalExchangeConfig?(e: ExchangeService): void;
additionalMerchantConfig?(m: MerchantService): void;
additionalBankConfig?(b: BankService): void;
@@ -466,11 +468,12 @@ export async function createSimpleTestkudosEnvironmentV3(
bank.corebankApiBaseUrl,
).href;
- const exchangeBankAccount = {
+ const exchangeBankAccount: HarnessExchangeBankAccount = {
wireGatewayApiBaseUrl,
accountName: exchangeBankUsername,
accountPassword: exchangeBankPassword,
accountPaytoUri: exchangePaytoUri,
+ skipWireFeeCreation: opts.skipWireFeeCreation === true,
};
await exchange.addBankAccount("1", exchangeBankAccount);
diff --git a/packages/taler-harness/src/integrationtests/test-wallet-insufficient-balance.ts b/packages/taler-harness/src/integrationtests/test-wallet-insufficient-balance.ts
index ac1244446..4062e186d 100644
--- a/packages/taler-harness/src/integrationtests/test-wallet-insufficient-balance.ts
+++ b/packages/taler-harness/src/integrationtests/test-wallet-insufficient-balance.ts
@@ -22,71 +22,32 @@ import {
Duration,
PaymentInsufficientBalanceDetails,
TalerErrorCode,
- WalletNotification,
} from "@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
import { CoinConfig, defaultCoinConfig } from "../harness/denomStructures.js";
import {
- ExchangeService,
- FakebankService,
GlobalTestState,
- MerchantService,
- WalletClient,
- WalletService,
generateRandomPayto,
setupDb,
} from "../harness/harness.js";
-import { withdrawViaBankV2 } from "../harness/helpers.js";
+import { createSimpleTestkudosEnvironmentV3, withdrawViaBankV3 } from "../harness/helpers.js";
export async function runWalletInsufficientBalanceTest(t: GlobalTestState) {
// Set up test environment
const db = await setupDb(t);
- const bank = await FakebankService.create(t, {
- allowRegistrations: true,
- currency: "TESTKUDOS",
- database: db.connStr,
- httpPort: 8082,
- });
-
- const exchange = ExchangeService.create(t, {
- name: "testexchange-1",
- currency: "TESTKUDOS",
- httpPort: 8081,
- database: db.connStr,
- });
-
- const merchant = await MerchantService.create(t, {
- name: "testmerchant-1",
- currency: "TESTKUDOS",
- httpPort: 8083,
- database: db.connStr,
- });
-
- const exchangeBankAccount = await bank.createExchangeAccount(
- "myexchange",
- "x",
- );
- exchangeBankAccount.skipWireFeeCreation = true;
- exchange.addBankAccount("1", exchangeBankAccount);
-
- bank.setSuggestedExchange(exchange, exchangeBankAccount.accountPaytoUri);
-
- await bank.start();
-
- await bank.pingUntilAvailable();
-
const coinConfig: CoinConfig[] = defaultCoinConfig.map((x) => x("TESTKUDOS"));
- exchange.addCoinConfigList(coinConfig);
-
- await exchange.start();
- await exchange.pingUntilAvailable();
- merchant.addExchange(exchange);
-
- await merchant.start();
- await merchant.pingUntilAvailable();
+ let {
+ bankClient,
+ exchange,
+ merchant,
+ walletService,
+ walletClient,
+ } = await createSimpleTestkudosEnvironmentV3(t, coinConfig, {
+ skipWireFeeCreation: true,
+ });
await merchant.addInstanceWithWireAccount({
id: "default",
@@ -106,24 +67,6 @@ export async function runWalletInsufficientBalanceTest(t: GlobalTestState) {
),
});
- const walletService = new WalletService(t, {
- name: "wallet",
- useInMemoryDb: true,
- });
- await walletService.start();
- await walletService.pingUntilAvailable();
-
- const allNotifications: WalletNotification[] = [];
-
- const walletClient = new WalletClient({
- name: "wallet",
- unixPath: walletService.socketPath,
- onNotification(n) {
- console.log("got notification", n);
- allNotifications.push(n);
- },
- });
- await walletClient.connect();
await walletClient.client.call(WalletApiOperation.InitWallet, {
config: {
testing: {
@@ -132,9 +75,9 @@ export async function runWalletInsufficientBalanceTest(t: GlobalTestState) {
},
});
- const wres = await withdrawViaBankV2(t, {
+ const wres = await withdrawViaBankV3(t, {
amount: "TESTKUDOS:10",
- bank,
+ bankClient,
exchange,
walletClient,
});
@@ -146,10 +89,12 @@ export async function runWalletInsufficientBalanceTest(t: GlobalTestState) {
depositPaytoUri: "payto://x-taler-bank/localhost/foobar",
});
});
+
t.assertDeepEqual(
exc.errorDetail.code,
TalerErrorCode.WALLET_DEPOSIT_GROUP_INSUFFICIENT_BALANCE,
);
+
const insufficientBalanceDetails: PaymentInsufficientBalanceDetails =
exc.errorDetail.insufficientBalanceDetails;