gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] branch master updated: harness: simplify kyc test, a


From: gnunet
Subject: [taler-wallet-core] branch master updated: harness: simplify kyc test, adjust config
Date: Wed, 08 Jan 2025 16:34:39 +0100

This is an automated email from the git hooks/post-receive script.

dold pushed a commit to branch master
in repository wallet-core.

The following commit(s) were added to refs/heads/master by this push:
     new b184d177c harness: simplify kyc test, adjust config
b184d177c is described below

commit b184d177c942d9f7b401a30d8cecb42c7dacedd9
Author: Florian Dold <florian@dold.me>
AuthorDate: Wed Jan 8 16:34:36 2025 +0100

    harness: simplify kyc test, adjust config
---
 .../taler-harness/src/integrationtests/test-kyc.ts | 338 ++++++---------------
 1 file changed, 91 insertions(+), 247 deletions(-)

diff --git a/packages/taler-harness/src/integrationtests/test-kyc.ts 
b/packages/taler-harness/src/integrationtests/test-kyc.ts
index a5882c661..5b1ba9f0a 100644
--- a/packages/taler-harness/src/integrationtests/test-kyc.ts
+++ b/packages/taler-harness/src/integrationtests/test-kyc.ts
@@ -18,10 +18,8 @@
  * Imports.
  */
 import {
-  Duration,
   Logger,
   NotificationType,
-  TalerCorebankApiClient,
   TransactionMajorState,
   TransactionMinorState,
   TransactionType,
@@ -31,253 +29,11 @@ import {
 import { readResponseJsonOrThrow } from "@gnu-taler/taler-util/http";
 import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
 import * as http from "node:http";
-import { CoinConfig, defaultCoinConfig } from "../harness/denomStructures.js";
-import {
-  BankService,
-  ExchangeService,
-  GlobalTestState,
-  MerchantService,
-  WalletClient,
-  WalletService,
-  getTestHarnessPaytoForLabel,
-  harnessHttpLib,
-  setupDb,
-} from "../harness/harness.js";
-import {
-  EnvOptions,
-  SimpleTestEnvironmentNg3,
-} from "../harness/environments.js";
+import { createKycTestkudosEnvironment } from "../harness/environments.js";
+import { GlobalTestState, harnessHttpLib } from "../harness/harness.js";
 
 const logger = new Logger("test-kyc.ts");
 
-async function createKycTestkudosEnvironment(
-  t: GlobalTestState,
-  coinConfig: CoinConfig[] = defaultCoinConfig.map((x) => x("TESTKUDOS")),
-  opts: EnvOptions = {},
-): Promise<SimpleTestEnvironmentNg3> {
-  const db = await setupDb(t);
-
-  const bank = await BankService.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",
-    httpPort: 8083,
-    database: db.connStr,
-  });
-
-  let receiverName = "Exchange";
-  let exchangeBankUsername = "exchange";
-  let exchangeBankPassword = "mypw-password";
-  let exchangePaytoUri = getTestHarnessPaytoForLabel(exchangeBankUsername);
-
-  await exchange.addBankAccount("1", {
-    accountName: exchangeBankUsername,
-    accountPassword: exchangeBankPassword,
-    wireGatewayApiBaseUrl: new URL(
-      "accounts/exchange/taler-wire-gateway/",
-      bank.baseUrl,
-    ).href,
-    accountPaytoUri: exchangePaytoUri,
-  });
-
-  bank.setSuggestedExchange(exchange, exchangePaytoUri);
-
-  await bank.start();
-
-  await bank.pingUntilAvailable();
-
-  const bankClient = new TalerCorebankApiClient(bank.corebankApiBaseUrl, {
-    auth: {
-      username: "admin",
-      password: "admin-password",
-    },
-  });
-
-  await bankClient.registerAccountExtended({
-    name: receiverName,
-    password: exchangeBankPassword,
-    username: exchangeBankUsername,
-    is_taler_exchange: true,
-    payto_uri: exchangePaytoUri,
-  });
-
-  const ageMaskSpec = opts.ageMaskSpec;
-
-  if (ageMaskSpec) {
-    exchange.enableAgeRestrictions(ageMaskSpec);
-    // Enable age restriction for all coins.
-    exchange.addCoinConfigList(
-      coinConfig.map((x) => ({
-        ...x,
-        name: `${x.name}-age`,
-        ageRestricted: true,
-      })),
-    );
-    // For mixed age restrictions, we also offer coins without age restrictions
-    if (opts.mixedAgeRestriction) {
-      exchange.addCoinConfigList(
-        coinConfig.map((x) => ({ ...x, ageRestricted: false })),
-      );
-    }
-  } else {
-    exchange.addCoinConfigList(coinConfig);
-  }
-
-  await exchange.modifyConfig(async (config) => {
-    config.setString("exchange", "enable_kyc", "yes");
-
-    config.setString("KYC-RULE-R1", "operation_type", "withdraw");
-    config.setString("KYC-RULE-R1", "enabled", "yes");
-    config.setString("KYC-RULE-R1", "exposed", "yes");
-    config.setString("KYC-RULE-R1", "is_and_combinator", "yes");
-    config.setString("KYC-RULE-R1", "threshold", "TESTKUDOS:5");
-    config.setString("KYC-RULE-R1", "timeframe", "1d");
-    config.setString("KYC-RULE-R1", "next_measures", "M1");
-
-    config.setString("KYC-MEASURE-M1", "check_name", "C1");
-    config.setString("KYC-MEASURE-M1", "context", "{}");
-    config.setString("KYC-MEASURE-M1", "program", "P1");
-
-    config.setString("KYC-CHECK-C1", "type", "LINK");
-    config.setString("KYC-CHECK-C1", "provider_id", "MYPROV");
-    config.setString("KYC-CHECK-C1", "description", "my check!");
-    config.setString("KYC-CHECK-C1", "description_i18n", "{}");
-    config.setString("KYC-CHECK-C1", "outputs", "full_name birthdate");
-    config.setString("KYC-CHECK-C1", "fallback", "M1");
-
-    config.setString(
-      "AML-PROGRAM-P1",
-      "command",
-      "taler-exchange-helper-measure-test-form",
-    );
-    config.setString("AML-PROGRAM-P1", "enabled", "true");
-    config.setString(
-      "AML-PROGRAM-P1",
-      "description",
-      "test for full_name and birthdate",
-    );
-    config.setString("AML-PROGRAM-P1", "description_i18n", "{}");
-    config.setString("AML-PROGRAM-P1", "fallback", "M1");
-
-    const myprov = "KYC-PROVIDER-MYPROV";
-    config.setString(myprov, "logic", "oauth2");
-    config.setString(
-      myprov,
-      "converter",
-      "taler-exchange-kyc-oauth2-test-converter.sh",
-    );
-    config.setString(myprov, "kyc_oauth2_validity", "forever");
-    config.setString(
-      myprov,
-      "kyc_oauth2_token_url",
-      "http://localhost:6666/oauth/v2/token";,
-    );
-    config.setString(
-      myprov,
-      "kyc_oauth2_authorize_url",
-      "http://localhost:6666/oauth/v2/login";,
-    );
-    config.setString(
-      myprov,
-      "kyc_oauth2_info_url",
-      "http://localhost:6666/oauth/v2/info";,
-    );
-    config.setString(
-      myprov,
-      "kyc_oauth2_converter_helper",
-      "taler-exchange-kyc-oauth2-test-converter.sh",
-    );
-    config.setString(myprov, "kyc_oauth2_client_id", "taler-exchange");
-    config.setString(myprov, "kyc_oauth2_client_secret", "exchange-secret");
-    config.setString(myprov, "kyc_oauth2_post_url", "https://taler.net";);
-
-    config.setString(
-      "kyc-legitimization-withdraw1",
-      "operation_type",
-      "withdraw",
-    );
-  });
-
-  await exchange.start();
-  await exchange.pingUntilAvailable();
-
-  merchant.addExchange(exchange);
-
-  await merchant.start();
-  await merchant.pingUntilAvailable();
-
-  await merchant.addInstanceWithWireAccount({
-    id: "default",
-    name: "Default Instance",
-    paytoUris: [getTestHarnessPaytoForLabel("merchant-default")],
-    defaultWireTransferDelay: Duration.toTalerProtocolDuration(
-      Duration.fromSpec({ minutes: 1 }),
-    ),
-  });
-
-  await merchant.addInstanceWithWireAccount({
-    id: "minst1",
-    name: "minst1",
-    paytoUris: [getTestHarnessPaytoForLabel("minst1")],
-    defaultWireTransferDelay: Duration.toTalerProtocolDuration(
-      Duration.fromSpec({ minutes: 1 }),
-    ),
-  });
-
-  const walletService = new WalletService(t, {
-    name: "wallet",
-    useInMemoryDb: true,
-  });
-  await walletService.start();
-  await walletService.pingUntilAvailable();
-
-  const walletClient = new WalletClient({
-    name: "wallet",
-    unixPath: walletService.socketPath,
-    onNotification(n) {
-      console.log("got notification", n);
-    },
-  });
-  await walletClient.connect();
-  await walletClient.client.call(WalletApiOperation.InitWallet, {
-    config: {
-      testing: {
-        skipDefaults: true,
-      },
-    },
-  });
-
-  console.log("setup done!");
-
-  return {
-    commonDb: db,
-    exchange,
-    merchant,
-    walletClient,
-    walletService,
-    bank,
-    bankClient,
-    exchangeBankAccount: {
-      accountName: "",
-      accountPassword: "",
-      accountPaytoUri: "",
-      wireGatewayApiBaseUrl: "",
-    },
-  };
-}
-
 interface TestfakeKycService {
   stop: () => void;
 }
@@ -374,7 +130,95 @@ export async function runKycTest(t: GlobalTestState) {
   // Set up test environment
 
   const { walletClient, bankClient, exchange, merchant } =
-    await createKycTestkudosEnvironment(t);
+    await createKycTestkudosEnvironment(t, {
+      adjustExchangeConfig(config) {
+        config.setString("exchange", "enable_kyc", "yes");
+
+        config.setString("KYC-RULE-R1", "operation_type", "withdraw");
+        config.setString("KYC-RULE-R1", "enabled", "yes");
+        config.setString("KYC-RULE-R1", "exposed", "yes");
+        config.setString("KYC-RULE-R1", "is_and_combinator", "yes");
+        config.setString("KYC-RULE-R1", "threshold", "TESTKUDOS:5");
+        config.setString("KYC-RULE-R1", "timeframe", "1d");
+        config.setString("KYC-RULE-R1", "next_measures", "M1");
+
+        config.setString("KYC-MEASURE-M1", "check_name", "C1");
+        config.setString("KYC-MEASURE-M1", "context", "{}");
+        config.setString("KYC-MEASURE-M1", "program", "P1");
+
+        config.setString("KYC-CHECK-C1", "type", "LINK");
+        config.setString("KYC-CHECK-C1", "provider_id", "MYPROV");
+        config.setString("KYC-CHECK-C1", "description", "my check!");
+        config.setString("KYC-CHECK-C1", "description_i18n", "{}");
+        config.setString("KYC-CHECK-C1", "outputs", "full_name birthdate");
+        config.setString("KYC-CHECK-C1", "fallback", "FREEZE");
+
+        config.setString(
+          "AML-PROGRAM-P1",
+          "command",
+          "taler-exchange-helper-measure-test-form",
+        );
+        config.setString("AML-PROGRAM-P1", "enabled", "true");
+        config.setString(
+          "AML-PROGRAM-P1",
+          "description",
+          "test for full_name and birthdate",
+        );
+        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(
+          myprov,
+          "converter",
+          "taler-exchange-kyc-oauth2-test-converter.sh",
+        );
+        config.setString(myprov, "kyc_oauth2_validity", "forever");
+        config.setString(
+          myprov,
+          "kyc_oauth2_token_url",
+          "http://localhost:6666/oauth/v2/token";,
+        );
+        config.setString(
+          myprov,
+          "kyc_oauth2_authorize_url",
+          "http://localhost:6666/oauth/v2/login";,
+        );
+        config.setString(
+          myprov,
+          "kyc_oauth2_info_url",
+          "http://localhost:6666/oauth/v2/info";,
+        );
+        config.setString(
+          myprov,
+          "kyc_oauth2_converter_helper",
+          "taler-exchange-kyc-oauth2-test-converter.sh",
+        );
+        config.setString(myprov, "kyc_oauth2_client_id", "taler-exchange");
+        config.setString(myprov, "kyc_oauth2_client_secret", 
"exchange-secret");
+        config.setString(myprov, "kyc_oauth2_post_url", "https://taler.net";);
+
+        config.setString(
+          "kyc-legitimization-withdraw1",
+          "operation_type",
+          "withdraw",
+        );
+      },
+    });
 
   const kycServer = await runTestfakeKycService();
 

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]