gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] branch master updated: testing Nexus balance account


From: gnunet
Subject: [taler-wallet-core] branch master updated: testing Nexus balance accounting
Date: Thu, 02 Sep 2021 23:48:46 +0200

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

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

The following commit(s) were added to refs/heads/master by this push:
     new a4489b80 testing Nexus balance accounting
a4489b80 is described below

commit a4489b80e3da4ebdbdd6fe009fef278adf9d4623
Author: MS <ms@taler.net>
AuthorDate: Thu Sep 2 21:48:41 2021 +0000

    testing Nexus balance accounting
---
 .../src/integrationtests/libeufin.ts               |  21 ++++
 .../test-libeufin-nexus-balance.ts                 | 114 +++++++++++++++++++++
 .../src/integrationtests/testrunner.ts             |   2 +
 3 files changed, 137 insertions(+)

diff --git a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts 
b/packages/taler-wallet-cli/src/integrationtests/libeufin.ts
index a38a69ed..b48cd159 100644
--- a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/libeufin.ts
@@ -1082,6 +1082,27 @@ export namespace LibeufinNexusApi {
     );
   }
 
+  export async function getBankAccount(
+    libeufinNexusService: LibeufinNexusServiceInterface,
+    accountName: string,
+  ): Promise<any> {
+    const baseUrl = libeufinNexusService.baseUrl;
+    let url = new URL(
+      `bank-accounts/${accountName}`,
+      baseUrl,
+    );
+    return await axios.get(
+      url.href,
+      {
+        auth: {
+          username: "admin",
+          password: "test",
+        },
+      },
+    );
+  }
+
+
   export async function submitInitiatedPayment(
     libeufinNexusService: LibeufinNexusServiceInterface,
     accountName: string,
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-nexus-balance.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-nexus-balance.ts
new file mode 100644
index 00000000..c00a102d
--- /dev/null
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-nexus-balance.ts
@@ -0,0 +1,114 @@
+/*
+ This file is part of GNU Taler
+ (C) 2020 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 { GlobalTestState, delayMs } from "./harness";
+import {
+  SandboxUserBundle,
+  NexusUserBundle,
+  launchLibeufinServices,
+  LibeufinSandboxApi,
+  LibeufinNexusApi,
+} from "./libeufin";
+
+/**
+ * This test checks how the C52 and C53 coordinate.  It'll test
+ * whether fresh transactions stop showing as C52 after they get
+ * included in a bank statement.
+ */
+export async function runLibeufinNexusBalanceTest(t: GlobalTestState) {
+  /**
+   * User saltetd "01"
+   */
+  const user01nexus = new NexusUserBundle(
+    "01",
+    "http://localhost:5010/ebicsweb";,
+  );
+  const user01sandbox = new SandboxUserBundle("01");
+
+  /**
+   * User saltetd "02".
+   */
+  const user02nexus = new NexusUserBundle(
+    "02",
+    "http://localhost:5010/ebicsweb";,
+  );
+  const user02sandbox = new SandboxUserBundle("02");
+
+  /**
+   * Launch Sandbox and Nexus.
+   */
+  const libeufinServices = await launchLibeufinServices(
+    t,
+    [user01nexus, user02nexus],
+    [user01sandbox, user02sandbox],
+    ["twg"],
+  );
+
+  // user 01 gets 10
+  await libeufinServices.libeufinSandbox.makeTransaction(
+    user02sandbox.ebicsBankAccount.label, // debit
+    user01sandbox.ebicsBankAccount.label, // credit
+    "EUR:10",
+    "first payment",
+  );
+
+  // user 01 gets another 10
+  await libeufinServices.libeufinSandbox.makeTransaction(
+    user02sandbox.ebicsBankAccount.label, // debit
+    user01sandbox.ebicsBankAccount.label, // credit
+    "EUR:10",
+    "first payment",
+  );
+
+  await LibeufinNexusApi.fetchTransactions(
+    libeufinServices.libeufinNexus,
+    user01nexus.localAccountName,
+    "all", // range
+    "report", // level
+  );
+  
+  // Check that user 01 has 20, via Nexus.
+  let accountInfo = await LibeufinNexusApi.getBankAccount(
+    libeufinServices.libeufinNexus,
+    user01nexus.localAccountName
+  );
+  t.assertTrue(accountInfo.data.lastSeenBalance == "EUR:20");
+
+  // user 01 gives 30
+  await libeufinServices.libeufinSandbox.makeTransaction(
+    user01sandbox.ebicsBankAccount.label, // credit
+    user02sandbox.ebicsBankAccount.label, // debit
+    "EUR:30",
+    "third payment",
+  );
+
+  await LibeufinNexusApi.fetchTransactions(
+    libeufinServices.libeufinNexus,
+    user01nexus.localAccountName,
+    "all", // range
+    "report", // level
+  );
+
+  let accountInfoDebit = await LibeufinNexusApi.getBankAccount(
+    libeufinServices.libeufinNexus,
+    user01nexus.localAccountName
+  );
+  t.assertTrue(accountInfoDebit.data.lastSeenBalance == "-EUR:10");
+}
+runLibeufinNexusBalanceTest.suites = ["libeufin"];
diff --git a/packages/taler-wallet-cli/src/integrationtests/testrunner.ts 
b/packages/taler-wallet-cli/src/integrationtests/testrunner.ts
index 384f0843..0f7e1f3b 100644
--- a/packages/taler-wallet-cli/src/integrationtests/testrunner.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/testrunner.ts
@@ -58,6 +58,7 @@ import { runWithdrawalBankIntegratedTest } from 
"./test-withdrawal-bank-integrat
 import { runMerchantExchangeConfusionTest } from 
"./test-merchant-exchange-confusion";
 import { runLibeufinBasicTest } from "./test-libeufin-basic";
 import { runLibeufinC5xTest } from "./test-libeufin-c5x";
+import { runLibeufinNexusBalanceTest } from "./test-libeufin-nexus-balance";
 import { runLibeufinKeyrotationTest } from "./test-libeufin-keyrotation";
 import { runLibeufinRefundTest } from "./test-libeufin-refund";
 import { runLibeufinRefundMultipleUsersTest } from 
"./test-libeufin-refund-multiple-users";
@@ -113,6 +114,7 @@ const allTests: TestMainFunction[] = [
   runLibeufinTutorialTest,
   runLibeufinRefundTest,
   runLibeufinC5xTest,
+  runLibeufinNexusBalanceTest,
   runLibeufinRefundMultipleUsersTest,
   runLibeufinApiPermissionsTest,
   runLibeufinApiFacadeTest,

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