gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] branch master updated: add test for mixed age restri


From: gnunet
Subject: [taler-wallet-core] branch master updated: add test for mixed age restrictions
Date: Mon, 05 Sep 2022 22:29:32 +0200

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 4240e1b7 add test for mixed age restrictions
4240e1b7 is described below

commit 4240e1b7678232c062919a454d5fd0f4bb3cb92d
Author: Florian Dold <florian@dold.me>
AuthorDate: Mon Sep 5 22:29:25 2022 +0200

    add test for mixed age restrictions
---
 packages/taler-wallet-cli/src/harness/helpers.ts   |   8 ++
 .../test-age-restrictions-mixed-merchant.ts        | 116 +++++++++++++++++++++
 .../src/integrationtests/testrunner.ts             |   2 +
 3 files changed, 126 insertions(+)

diff --git a/packages/taler-wallet-cli/src/harness/helpers.ts 
b/packages/taler-wallet-cli/src/harness/helpers.ts
index db66efbb..08c865ec 100644
--- a/packages/taler-wallet-cli/src/harness/helpers.ts
+++ b/packages/taler-wallet-cli/src/harness/helpers.ts
@@ -70,6 +70,8 @@ export interface EnvOptions {
    * If provided, enable age restrictions with the specified age mask string.
    */
   ageMaskSpec?: string;
+
+  mixedAgeRestriction?: boolean;
 }
 
 /**
@@ -124,6 +126,12 @@ export async function createSimpleTestkudosEnvironment(
     exchange.addCoinConfigList(
       coinConfig.map((x) => ({ ...x, 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);
   }
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-age-restrictions-mixed-merchant.ts
 
b/packages/taler-wallet-cli/src/integrationtests/test-age-restrictions-mixed-merchant.ts
new file mode 100644
index 00000000..8bf71b63
--- /dev/null
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-age-restrictions-mixed-merchant.ts
@@ -0,0 +1,116 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
+/**
+ * Imports.
+ */
+import { defaultCoinConfig } from "../harness/denomStructures.js";
+import { GlobalTestState, WalletCli } from "../harness/harness.js";
+import {
+  createSimpleTestkudosEnvironment,
+  withdrawViaBank,
+  makeTestPayment,
+} from "../harness/helpers.js";
+
+/**
+ * Run test for basic, bank-integrated withdrawal and payment.
+ */
+export async function runAgeRestrictionsMixedMerchantTest(t: GlobalTestState) {
+  // Set up test environment
+
+  const {
+    wallet: walletOne,
+    bank,
+    exchange,
+    merchant,
+  } = await createSimpleTestkudosEnvironment(
+    t,
+    defaultCoinConfig.map((x) => x("TESTKUDOS")),
+    {
+      ageMaskSpec: "8:10:12:14:16:18:21",
+      mixedAgeRestriction: true,
+    },
+  );
+
+  const walletTwo = new WalletCli(t, "walletTwo");
+  const walletThree = new WalletCli(t, "walletThree");
+
+  {
+    const wallet = walletOne;
+
+    await withdrawViaBank(t, {
+      wallet,
+      bank,
+      exchange,
+      amount: "TESTKUDOS:20",
+      restrictAge: 13,
+    });
+
+    const order = {
+      summary: "Buy me!",
+      amount: "TESTKUDOS:5",
+      fulfillment_url: "taler://fulfillment-success/thx",
+      minimum_age: 9,
+    };
+
+    await makeTestPayment(t, { wallet, merchant, order });
+    await wallet.runUntilDone();
+  }
+
+  {
+    const wallet = walletTwo;
+
+    await withdrawViaBank(t, {
+      wallet,
+      bank,
+      exchange,
+      amount: "TESTKUDOS:20",
+      restrictAge: 13,
+    });
+
+    const order = {
+      summary: "Buy me!",
+      amount: "TESTKUDOS:5",
+      fulfillment_url: "taler://fulfillment-success/thx",
+    };
+
+    await makeTestPayment(t, { wallet, merchant, order });
+    await wallet.runUntilDone();
+  }
+
+  {
+    const wallet = walletThree;
+
+    await withdrawViaBank(t, {
+      wallet,
+      bank,
+      exchange,
+      amount: "TESTKUDOS:20",
+    });
+
+    const order = {
+      summary: "Buy me!",
+      amount: "TESTKUDOS:5",
+      fulfillment_url: "taler://fulfillment-success/thx",
+      minimum_age: 9,
+    };
+
+    await makeTestPayment(t, { wallet, merchant, order });
+    await wallet.runUntilDone();
+  }
+}
+
+runAgeRestrictionsMixedMerchantTest.suites = ["wallet"];
diff --git a/packages/taler-wallet-cli/src/integrationtests/testrunner.ts 
b/packages/taler-wallet-cli/src/integrationtests/testrunner.ts
index 3c1ccfe0..98e56d6f 100644
--- a/packages/taler-wallet-cli/src/integrationtests/testrunner.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/testrunner.ts
@@ -92,6 +92,7 @@ import { runWithdrawalFakebankTest } from 
"./test-withdrawal-fakebank.js";
 import { runTestWithdrawalManualTest } from "./test-withdrawal-manual.js";
 import { runAgeRestrictionsPeerTest } from "./test-age-restrictions-peer.js";
 import { runWalletBalanceTest } from "./test-wallet-balance.js";
+import { runAgeRestrictionsMixedMerchantTest } from 
"./test-age-restrictions-mixed-merchant.js";
 
 /**
  * Test runner.
@@ -110,6 +111,7 @@ interface TestMainFunction {
 const allTests: TestMainFunction[] = [
   runAgeRestrictionsMerchantTest,
   runAgeRestrictionsPeerTest,
+  runAgeRestrictionsMixedMerchantTest,
   runBankApiTest,
   runClaimLoopTest,
   runClauseSchnorrTest,

-- 
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]