taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit f1ce52e172858f1623862957dd514df2a319b024
parent f3964451a5f83a0f047e6cd6836c931726f4bb4c
Author: Sebastian <sebasjm@gmail.com>
Date:   Fri, 13 Dec 2024 11:24:37 -0300

Merge remote-tracking branch 'origin/master'

Diffstat:
Mpackages/taler-harness/src/harness/environments.ts | 6++++++
Mpackages/taler-harness/src/integrationtests/test-kyc-amp-failure.ts | 16+++++++++++++++-
Mpackages/taler-harness/src/integrationtests/test-kyc-amp-timeout.ts | 20++++++++++++++++----
Mpackages/taler-wallet-core/src/dbless.ts | 3++-
4 files changed, 39 insertions(+), 6 deletions(-)

diff --git a/packages/taler-harness/src/harness/environments.ts b/packages/taler-harness/src/harness/environments.ts @@ -34,6 +34,7 @@ import { Duration, encodeCrock, HttpStatusCode, + j2s, LegitimizationRuleSet, Logger, MerchantApiClient, @@ -1051,6 +1052,11 @@ export async function postAmlDecisionNoRules( console.log(`aml decision status: ${resp.status}`); + if (resp.status >= 400) { + const body = await resp.json(); + console.log(j2s(body)); + } + t.assertDeepEqual(resp.status, HttpStatusCode.NoContent); } diff --git a/packages/taler-harness/src/integrationtests/test-kyc-amp-failure.ts b/packages/taler-harness/src/integrationtests/test-kyc-amp-failure.ts @@ -27,6 +27,7 @@ import { import { WalletApiOperation } from "@gnu-taler/taler-wallet-core"; import { createKycTestkudosEnvironment, + postAmlDecisionNoRules, withdrawViaBankV3, } from "../harness/environments.js"; import { GlobalTestState } from "../harness/harness.js"; @@ -66,7 +67,11 @@ function adjustExchangeConfig(config: Configuration) { config.setString("AML-PROGRAM-FREEZE", "description", "freeze account"); config.setString("AML-PROGRAM-FREEZE", "description_i18n", "{}"); config.setString("AML-PROGRAM-FREEZE", "fallback", "M1"); - config.setString("AML-PROGRAM-FREEZE", "command", "taler-exchange-helper-measure-freeze"); + config.setString( + "AML-PROGRAM-FREEZE", + "command", + "taler-exchange-helper-measure-freeze", + ); config.setString; } @@ -104,6 +109,15 @@ export async function runKycAmpFailureTest(t: GlobalTestState) { console.log(j2s(txDet)); + t.assertTrue(!!txDet.kycPaytoHash); + + await postAmlDecisionNoRules(t, { + amlPriv: amlKeypair.priv, + amlPub: amlKeypair.pub, + exchangeBaseUrl: exchange.baseUrl, + paytoHash: txDet.kycPaytoHash, + }); + await wres.withdrawalFinishedCond; } diff --git a/packages/taler-harness/src/integrationtests/test-kyc-amp-timeout.ts b/packages/taler-harness/src/integrationtests/test-kyc-amp-timeout.ts @@ -27,6 +27,7 @@ import { import { WalletApiOperation } from "@gnu-taler/taler-wallet-core"; import { createKycTestkudosEnvironment, + postAmlDecisionNoRules, withdrawViaBankV3, } from "../harness/environments.js"; import { GlobalTestState } from "../harness/harness.js"; @@ -66,7 +67,11 @@ function adjustExchangeConfig(config: Configuration) { config.setString("AML-PROGRAM-FREEZE", "description", "freeze account"); config.setString("AML-PROGRAM-FREEZE", "description_i18n", "{}"); config.setString("AML-PROGRAM-FREEZE", "fallback", "M1"); - config.setString("AML-PROGRAM-FREEZE", "command", "taler-exchange-helper-measure-freeze"); + config.setString( + "AML-PROGRAM-FREEZE", + "command", + "taler-exchange-helper-measure-freeze", + ); config.setString; } @@ -102,11 +107,18 @@ export async function runKycAmpTimeoutTest(t: GlobalTestState) { transactionId: wres.transactionId as TransactionIdStr, }); - console.log(j2s(txDet)); + t.assertTrue(!!txDet.kycPaytoHash); - // FIXME: Test incomplete. Check that fallback rules have been applied. + await postAmlDecisionNoRules(t, { + amlPriv: amlKeypair.priv, + amlPub: amlKeypair.pub, + exchangeBaseUrl: exchange.baseUrl, + paytoHash: txDet.kycPaytoHash, + }); + + console.log(j2s(txDet)); - //await wres.withdrawalFinishedCond; + await wres.withdrawalFinishedCond; } runKycAmpTimeoutTest.suites = ["wallet"]; diff --git a/packages/taler-wallet-core/src/dbless.ts b/packages/taler-wallet-core/src/dbless.ts @@ -97,8 +97,9 @@ export interface TopupReserveWithBankArgs { export async function topupReserveWithBank(args: TopupReserveWithBankArgs) { const { http, corebankApiBaseUrl, amount, exchangeInfo, reservePub } = args; - const bankClient = new TalerCorebankApiClient(corebankApiBaseUrl); + const bankClient = new TalerCorebankApiClient(corebankApiBaseUrl, { httpClient: http }); const bankUser = await bankClient.createRandomBankUser(); + bankClient.setAuth(bankUser); const wopi = await bankClient.createWithdrawalOperation( bankUser.username, amount,