taler-typescript-core

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

commit d0f18f74c7dddd5e17b2e1f63db5677771403e81
parent 05101d0efe45dd1cd3cdea1f75b7fe9b35cbadb0
Author: Florian Dold <florian@dold.me>
Date:   Wed,  8 Jan 2025 17:04:53 +0100

harness: adjust tests to new kyc config constraints

Diffstat:
Mpackages/taler-harness/src/harness/environments.ts | 27+++++++++++++++++++++++++++
Mpackages/taler-harness/src/integrationtests/test-kyc-amp-failure.ts | 19+++----------------
Mpackages/taler-harness/src/integrationtests/test-kyc-amp-timeout.ts | 21+++------------------
Mpackages/taler-harness/src/integrationtests/test-kyc-balance-withdrawal.ts | 12++++--------
Mpackages/taler-harness/src/integrationtests/test-kyc-decisions.ts | 3++-
Mpackages/taler-harness/src/integrationtests/test-kyc-deposit-aggregate-implicit-auth.ts | 12++++--------
Mpackages/taler-harness/src/integrationtests/test-kyc-deposit-aggregate.ts | 12++++--------
Mpackages/taler-harness/src/integrationtests/test-kyc-withdrawal-verboten.ts | 11++++-------
Mpackages/taler-harness/src/integrationtests/test-kyc.ts | 17+++--------------
9 files changed, 54 insertions(+), 80 deletions(-)

diff --git a/packages/taler-harness/src/harness/environments.ts b/packages/taler-harness/src/harness/environments.ts @@ -1337,3 +1337,30 @@ export async function registerHarnessBankTestUser( token: tokRes.body.access_token, }; } + +/** + * Add common AML configuration. + * + * In particular, the measure and program FREEZE and the program NONE is defined. + */ +export function configureCommonKyc(config: Configuration): void { + config.setString("exchange", "enable_kyc", "yes"); + + config.setString("KYC-MEASURE-FREEZE", "check_name", "SKIP"); + config.setString("KYC-MEASURE-FREEZE", "context", "{}"); + config.setString("KYC-MEASURE-FREEZE", "program", "FREEZE"); + config.setString( + "AML-PROGRAM-FREEZE", + "command", + "taler-exchange-helper-measure-freeze", + ); + config.setString("AML-PROGRAM-FREEZE", "enabled", "true"); + config.setString("AML-PROGRAM-FREEZE", "description", "Freeze account"); + config.setString("AML-PROGRAM-FREEZE", "description_i18n", "{}"); + config.setString("AML-PROGRAM-FREEZE", "fallback", "FREEZE"); + + config.setString("AML-PROGRAM-NONE", "command", "/bin/true"); + config.setString("AML-PROGRAM-NONE", "enabled", "true"); + config.setString("AML-PROGRAM-NONE", "description", "this does nothing"); + config.setString("AML-PROGRAM-NONE", "fallback", "FREEZE"); +} diff --git a/packages/taler-harness/src/integrationtests/test-kyc-amp-failure.ts b/packages/taler-harness/src/integrationtests/test-kyc-amp-failure.ts @@ -26,6 +26,7 @@ import { } from "@gnu-taler/taler-util"; import { WalletApiOperation } from "@gnu-taler/taler-wallet-core"; import { + configureCommonKyc, createKycTestkudosEnvironment, postAmlDecisionNoRules, withdrawViaBankV3, @@ -33,7 +34,7 @@ import { import { GlobalTestState } from "../harness/harness.js"; function adjustExchangeConfig(config: Configuration) { - config.setString("exchange", "enable_kyc", "yes"); + configureCommonKyc(config); config.setString("exchangedb", "MAX_AML_PROGRAM_RUNTIME", "3s"); @@ -49,30 +50,16 @@ function adjustExchangeConfig(config: Configuration) { config.setString("KYC-MEASURE-M1", "context", "{}"); config.setString("KYC-MEASURE-M1", "program", "P1"); - config.setString("KYC-MEASURE-M2", "program", "freeze"); - config.setString("KYC-MEASURE-M2", "check_name", "SKIP"); - config.setString("KYC-MEASURE-M2", "context", "{}"); - config.setString("AML-PROGRAM-P1", "enabled", "true"); config.setString("AML-PROGRAM-P1", "description", "hang"); config.setString("AML-PROGRAM-P1", "description_i18n", "{}"); - config.setString("AML-PROGRAM-P1", "fallback", "M2"); + config.setString("AML-PROGRAM-P1", "fallback", "FREEZE"); config.setString( "AML-PROGRAM-P1", "command", "taler-harness aml-program run-program --name fail", ); - config.setString("AML-PROGRAM-FREEZE", "enabled", "true"); - 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; } diff --git a/packages/taler-harness/src/integrationtests/test-kyc-amp-timeout.ts b/packages/taler-harness/src/integrationtests/test-kyc-amp-timeout.ts @@ -26,6 +26,7 @@ import { } from "@gnu-taler/taler-util"; import { WalletApiOperation } from "@gnu-taler/taler-wallet-core"; import { + configureCommonKyc, createKycTestkudosEnvironment, postAmlDecisionNoRules, withdrawViaBankV3, @@ -33,7 +34,7 @@ import { import { GlobalTestState } from "../harness/harness.js"; function adjustExchangeConfig(config: Configuration) { - config.setString("exchange", "enable_kyc", "yes"); + configureCommonKyc(config); config.setString("exchangedb", "MAX_AML_PROGRAM_RUNTIME", "3s"); @@ -49,31 +50,15 @@ function adjustExchangeConfig(config: Configuration) { config.setString("KYC-MEASURE-M1", "context", "{}"); config.setString("KYC-MEASURE-M1", "program", "P1"); - config.setString("KYC-MEASURE-M2", "program", "freeze"); - config.setString("KYC-MEASURE-M2", "check_name", "SKIP"); - config.setString("KYC-MEASURE-M2", "context", "{}"); - config.setString("AML-PROGRAM-P1", "enabled", "true"); config.setString("AML-PROGRAM-P1", "description", "hang"); config.setString("AML-PROGRAM-P1", "description_i18n", "{}"); - config.setString("AML-PROGRAM-P1", "fallback", "M2"); + config.setString("AML-PROGRAM-P1", "fallback", "FREEZE"); config.setString( "AML-PROGRAM-P1", "command", "taler-harness aml-program run-program --name hang", ); - - config.setString("AML-PROGRAM-FREEZE", "enabled", "true"); - 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; } /** diff --git a/packages/taler-harness/src/integrationtests/test-kyc-balance-withdrawal.ts b/packages/taler-harness/src/integrationtests/test-kyc-balance-withdrawal.ts @@ -45,6 +45,7 @@ import { WalletService, } from "../harness/harness.js"; import { + configureCommonKyc, EnvOptions, postAmlDecisionNoRules, withdrawViaBankV3, @@ -120,7 +121,7 @@ async function createKycTestkudosEnvironment( exchange.addCoinConfigList(coinConfig); await exchange.modifyConfig(async (config) => { - config.setString("exchange", "enable_kyc", "yes"); + configureCommonKyc(config); config.setString("KYC-RULE-R1", "operation_type", "balance"); config.setString("KYC-RULE-R1", "enabled", "yes"); @@ -132,16 +133,11 @@ async function createKycTestkudosEnvironment( config.setString("KYC-MEASURE-M1", "check_name", "C1"); config.setString("KYC-MEASURE-M1", "context", "{}"); - config.setString("KYC-MEASURE-M1", "program", "P1"); - - config.setString("AML-PROGRAM-P1", "command", "/bin/true"); - config.setString("AML-PROGRAM-P1", "enabled", "true"); - config.setString("AML-PROGRAM-P1", "description", "this does nothing"); - config.setString("AML-PROGRAM-P1", "fallback", "M1"); + config.setString("KYC-MEASURE-M1", "program", "NONE"); config.setString("KYC-CHECK-C1", "type", "INFO"); config.setString("KYC-CHECK-C1", "description", "my check!"); - config.setString("KYC-CHECK-C1", "fallback", "M1"); + config.setString("KYC-CHECK-C1", "fallback", "FREEZE"); }); await exchange.start(); diff --git a/packages/taler-harness/src/integrationtests/test-kyc-decisions.ts b/packages/taler-harness/src/integrationtests/test-kyc-decisions.ts @@ -37,6 +37,7 @@ import { WalletApiOperation, } from "@gnu-taler/taler-wallet-core"; import { + configureCommonKyc, createKycTestkudosEnvironment, postAmlDecision, withdrawViaBankV3, @@ -49,7 +50,7 @@ import { } from "../harness/harness.js"; function adjustExchangeConfig(config: Configuration) { - config.setString("exchange", "enable_kyc", "yes"); + configureCommonKyc(config); config.setString("KYC-RULE-R1", "operation_type", "withdraw"); config.setString("KYC-RULE-R1", "enabled", "yes"); diff --git a/packages/taler-harness/src/integrationtests/test-kyc-deposit-aggregate-implicit-auth.ts b/packages/taler-harness/src/integrationtests/test-kyc-deposit-aggregate-implicit-auth.ts @@ -24,6 +24,7 @@ import { } from "@gnu-taler/taler-util"; import { WalletApiOperation } from "@gnu-taler/taler-wallet-core"; import { + configureCommonKyc, createKycTestkudosEnvironment, postAmlDecisionNoRules, withdrawViaBankV3, @@ -31,7 +32,7 @@ import { import { GlobalTestState } from "../harness/harness.js"; function adjustExchangeConfig(config: Configuration): void { - config.setString("exchange", "enable_kyc", "yes"); + configureCommonKyc(config); config.setString("KYC-RULE-R1", "operation_type", "aggregate"); config.setString("KYC-RULE-R1", "enabled", "yes"); @@ -43,16 +44,11 @@ function adjustExchangeConfig(config: Configuration): void { config.setString("KYC-MEASURE-M1", "check_name", "C1"); config.setString("KYC-MEASURE-M1", "context", "{}"); - config.setString("KYC-MEASURE-M1", "program", "P1"); - - config.setString("AML-PROGRAM-P1", "command", "/bin/true"); - config.setString("AML-PROGRAM-P1", "enabled", "true"); - config.setString("AML-PROGRAM-P1", "description", "this does nothing"); - config.setString("AML-PROGRAM-P1", "fallback", "M1"); + config.setString("KYC-MEASURE-M1", "program", "NONE"); config.setString("KYC-CHECK-C1", "type", "INFO"); config.setString("KYC-CHECK-C1", "description", "my check!"); - config.setString("KYC-CHECK-C1", "fallback", "M1"); + config.setString("KYC-CHECK-C1", "fallback", "FREEZE"); } export async function runKycDepositAggregateImplicitAuthTest(t: GlobalTestState) { diff --git a/packages/taler-harness/src/integrationtests/test-kyc-deposit-aggregate.ts b/packages/taler-harness/src/integrationtests/test-kyc-deposit-aggregate.ts @@ -25,6 +25,7 @@ import { } from "@gnu-taler/taler-util"; import { WalletApiOperation } from "@gnu-taler/taler-wallet-core"; import { + configureCommonKyc, createKycTestkudosEnvironment, postAmlDecisionNoRules, withdrawViaBankV3, @@ -32,7 +33,7 @@ import { import { GlobalTestState } from "../harness/harness.js"; function adjustExchangeConfig(config: Configuration): void { - config.setString("exchange", "enable_kyc", "yes"); + configureCommonKyc(config); config.setString("KYC-RULE-R1", "operation_type", "aggregate"); config.setString("KYC-RULE-R1", "enabled", "yes"); @@ -44,16 +45,11 @@ function adjustExchangeConfig(config: Configuration): void { config.setString("KYC-MEASURE-M1", "check_name", "C1"); config.setString("KYC-MEASURE-M1", "context", "{}"); - config.setString("KYC-MEASURE-M1", "program", "P1"); - - config.setString("AML-PROGRAM-P1", "command", "/bin/true"); - config.setString("AML-PROGRAM-P1", "enabled", "true"); - config.setString("AML-PROGRAM-P1", "description", "this does nothing"); - config.setString("AML-PROGRAM-P1", "fallback", "M1"); + config.setString("KYC-MEASURE-M1", "program", "NONE");; config.setString("KYC-CHECK-C1", "type", "INFO"); config.setString("KYC-CHECK-C1", "description", "my check!"); - config.setString("KYC-CHECK-C1", "fallback", "M1"); + config.setString("KYC-CHECK-C1", "fallback", "FREEZE"); } export async function runKycDepositAggregateTest(t: GlobalTestState) { diff --git a/packages/taler-harness/src/integrationtests/test-kyc-withdrawal-verboten.ts b/packages/taler-harness/src/integrationtests/test-kyc-withdrawal-verboten.ts @@ -27,6 +27,7 @@ import { } from "@gnu-taler/taler-util"; import { WalletApiOperation } from "@gnu-taler/taler-wallet-core"; import { + configureCommonKyc, createKycTestkudosEnvironment, postAmlDecision, postAmlDecisionNoRules, @@ -39,6 +40,7 @@ export async function runKycWithdrawalVerbotenTest(t: GlobalTestState) { const { walletClient, bankClient, exchange, amlKeypair } = await createKycTestkudosEnvironment(t, { adjustExchangeConfig(config) { + configureCommonKyc(config); config.setString("exchange", "enable_kyc", "yes"); config.setString("KYC-RULE-R1", "operation_type", "withdraw"); @@ -59,16 +61,11 @@ export async function runKycWithdrawalVerbotenTest(t: GlobalTestState) { config.setString("KYC-MEASURE-M1", "check_name", "C1"); config.setString("KYC-MEASURE-M1", "context", "{}"); - config.setString("KYC-MEASURE-M1", "program", "P1"); - - config.setString("AML-PROGRAM-P1", "command", "/bin/true"); - config.setString("AML-PROGRAM-P1", "enabled", "true"); - config.setString("AML-PROGRAM-P1", "description", "this does nothing"); - config.setString("AML-PROGRAM-P1", "fallback", "M1"); + config.setString("KYC-MEASURE-M1", "program", "NONE"); config.setString("KYC-CHECK-C1", "type", "INFO"); config.setString("KYC-CHECK-C1", "description", "my check!"); - config.setString("KYC-CHECK-C1", "fallback", "M1"); + config.setString("KYC-CHECK-C1", "fallback", "FREEZE"); }, }); diff --git a/packages/taler-harness/src/integrationtests/test-kyc.ts b/packages/taler-harness/src/integrationtests/test-kyc.ts @@ -29,7 +29,7 @@ import { import { readResponseJsonOrThrow } from "@gnu-taler/taler-util/http"; import { WalletApiOperation } from "@gnu-taler/taler-wallet-core"; import * as http from "node:http"; -import { createKycTestkudosEnvironment } from "../harness/environments.js"; +import { configureCommonKyc, createKycTestkudosEnvironment } from "../harness/environments.js"; import { GlobalTestState, harnessHttpLib } from "../harness/harness.js"; const logger = new Logger("test-kyc.ts"); @@ -134,6 +134,8 @@ export async function runKycTest(t: GlobalTestState) { adjustExchangeConfig(config) { config.setString("exchange", "enable_kyc", "yes"); + configureCommonKyc(config); + config.setString("KYC-RULE-R1", "operation_type", "withdraw"); config.setString("KYC-RULE-R1", "enabled", "yes"); config.setString("KYC-RULE-R1", "exposed", "yes"); @@ -167,19 +169,6 @@ export async function runKycTest(t: GlobalTestState) { config.setString("AML-PROGRAM-P1", "description_i18n", "{}"); config.setString("AML-PROGRAM-P1", "fallback", "FREEZE"); - config.setString("KYC-MEASURE-FREEZE", "check_name", "SKIP"); - config.setString("KYC-MEASURE-FREEZE", "context", "{}"); - config.setString("KYC-MEASURE-FREEZE", "program", "FREEZE"); - config.setString( - "AML-PROGRAM-FREEZE", - "command", - "taler-exchange-helper-measure-freeze", - ); - config.setString("AML-PROGRAM-FREEZE", "enabled", "true"); - config.setString("AML-PROGRAM-FREEZE", "description", "Freeze account"); - config.setString("AML-PROGRAM-FREEZE", "description_i18n", "{}"); - config.setString("AML-PROGRAM-FREEZE", "fallback", "FREEZE"); - const myprov = "KYC-PROVIDER-MYPROV"; config.setString(myprov, "logic", "oauth2"); config.setString(