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:
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);