taler-typescript-core

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

commit 9cf80e40ae81da7f791245718720d32537b1e5e7
parent aed6d4c020b7d5252e7e1b3f69e17393fef9be7a
Author: Sebastian <sebasjm@gmail.com>
Date:   Wed, 28 Aug 2024 15:05:59 -0300

was using kycAccessToken from the first transaction instead of the second withdrawal

Diffstat:
Mpackages/taler-harness/src/integrationtests/test-kyc-new-measure.ts | 110++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------
1 file changed, 70 insertions(+), 40 deletions(-)

diff --git a/packages/taler-harness/src/integrationtests/test-kyc-new-measure.ts b/packages/taler-harness/src/integrationtests/test-kyc-new-measure.ts @@ -243,35 +243,43 @@ export async function runKycNewMeasureTest(t: GlobalTestState) { await createKycTestkudosEnvironment(t); // Withdraw digital cash into the wallet. + let kycPaytoHash: string | undefined; + let accessToken: string | undefined; + let firstTransaction: string | undefined; - const wres = await withdrawViaBankV3(t, { - amount: "TESTKUDOS:20", - bankClient, - exchange, - walletClient, - }); + { + const wres = await withdrawViaBankV3(t, { + amount: "TESTKUDOS:20", + bankClient, + exchange, + walletClient, + }); - await walletClient.call(WalletApiOperation.TestingWaitTransactionState, { - transactionId: wres.transactionId as TransactionIdStr, - txState: { - major: TransactionMajorState.Pending, - minor: TransactionMinorState.KycRequired, - }, - }); + await walletClient.call(WalletApiOperation.TestingWaitTransactionState, { + transactionId: wres.transactionId as TransactionIdStr, + txState: { + major: TransactionMajorState.Pending, + minor: TransactionMinorState.KycRequired, + }, + }); - const txDetails = await walletClient.call( - WalletApiOperation.GetTransactionById, - { - transactionId: wres.transactionId, - }, - ); + const txDetails = await walletClient.call( + WalletApiOperation.GetTransactionById, + { + transactionId: wres.transactionId, + }, + ); - console.log(j2s(txDetails)); - const accessToken = txDetails.kycAccessToken; - t.assertTrue(!!accessToken); + console.log(j2s(txDetails)); + + accessToken = txDetails.kycAccessToken; + kycPaytoHash = txDetails.kycPaytoHash; + firstTransaction = wres.transactionId; + } + t.assertTrue(!!accessToken); const infoResp = await harnessHttpLib.fetch( - new URL(`kyc-info/${txDetails.kycAccessToken}`, exchange.baseUrl).href, + new URL(`kyc-info/${accessToken}`, exchange.baseUrl).href, ); const clientInfo = await readResponseJsonOrThrow( @@ -300,33 +308,30 @@ export async function runKycNewMeasureTest(t: GlobalTestState) { t.assertDeepEqual(uploadResp.status, 204); const sig = signAmlQuery(decodeCrock(amlKeypair.priv)); - - const decisionsResp = await harnessHttpLib.fetch( - new URL(`aml/${amlKeypair.pub}/decisions`, exchange.baseUrl).href, - { - headers: { - "Taler-AML-Officer-Signature": encodeCrock(sig), + { + const decisionsResp = await harnessHttpLib.fetch( + new URL(`aml/${amlKeypair.pub}/decisions`, exchange.baseUrl).href, + { + headers: { + "Taler-AML-Officer-Signature": encodeCrock(sig), + }, }, - }, - ); - - const decisions = await readResponseJsonOrThrow(decisionsResp, codecForAny()); - console.log(j2s(decisions)); + ); - t.assertDeepEqual(decisionsResp.status, 200); + const decisions = await readResponseJsonOrThrow(decisionsResp, codecForAny()); + console.log(j2s(decisions)); + t.assertDeepEqual(decisionsResp.status, 200); + } // KYC should pass now - await walletClient.call(WalletApiOperation.TestingWaitTransactionState, { - transactionId: wres.transactionId as TransactionIdStr, + transactionId: firstTransaction as TransactionIdStr, txState: { major: TransactionMajorState.Done, }, }); // Now, AML officer takes action and freezes the account, requiring a new_measure - - const kycPaytoHash = txDetails.kycPaytoHash; t.assertTrue(!!kycPaytoHash); await postAmlDecision(t, { @@ -344,9 +349,26 @@ export async function runKycNewMeasureTest(t: GlobalTestState) { }, }); + + { + const decisionsResp = await harnessHttpLib.fetch( + new URL(`aml/${amlKeypair.pub}/decisions`, exchange.baseUrl).href, + { + headers: { + "Taler-AML-Officer-Signature": encodeCrock(sig), + }, + }, + ); + + const decisions = await readResponseJsonOrThrow(decisionsResp, codecForAny()); + console.log(j2s(decisions)); + + t.assertDeepEqual(decisionsResp.status, 200); + } + { const wres = await withdrawViaBankV3(t, { - amount: "TESTKUDOS:20", + amount: "TESTKUDOS:21", bankClient, exchange, walletClient, @@ -360,6 +382,14 @@ export async function runKycNewMeasureTest(t: GlobalTestState) { }, }); + const txDetails = await walletClient.call( + WalletApiOperation.GetTransactionById, + { + transactionId: wres.transactionId, + }, + ); + console.log(j2s(txDetails)); + const accessToken = txDetails.kycAccessToken; t.assertTrue(!!accessToken);