aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMS <ms@taler.net>2021-08-16 22:31:04 -1100
committerMS <ms@taler.net>2021-08-16 22:31:04 -1100
commit1f255b7f4e0225b1eede71bf7d67ca4b01c2aea4 (patch)
treeadda5ba39568bbe4227f3830279f899af3720ed3
parentdaf9dc507ec16c34cecb7f423be8935b6816eede (diff)
Extend test tooling to create Anastasis facades.
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/libeufin.ts35
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-facade-bad-request.ts1
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-facade.ts1
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/test-libeufin-facade-anastasis.ts75
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund-multiple-users.ts1
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund.ts1
6 files changed, 105 insertions, 9 deletions
diff --git a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts b/packages/taler-wallet-cli/src/integrationtests/libeufin.ts
index 1b393c269..71c7aad64 100644
--- a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/libeufin.ts
@@ -350,6 +350,7 @@ export interface SimulateIncomingTransactionRequest {
export class NexusUserBundle {
userReq: CreateNexusUserRequest;
connReq: CreateEbicsBankConnectionRequest;
+ anastasisReq: CreateAnastasisFacadeRequest;
twgReq: CreateTalerWireGatewayFacadeRequest;
twgTransferPermission: PostNexusPermissionRequest;
twgHistoryPermission: PostNexusPermissionRequest;
@@ -378,6 +379,13 @@ export class NexusUserBundle {
accountName: `local-account-${salt}`,
connectionName: `connection-${salt}`,
};
+ this.anastasisReq = {
+ currency: "EUR",
+ name: `anastasis-${salt}`,
+ reserveTransferLevel: "report",
+ accountName: `local-account-${salt}`,
+ connectionName: `connection-${salt}`,
+ };
this.remoteAccountName = `remote-account-${salt}`;
this.localAccountName = `local-account-${salt}`;
this.twgTransferPermission = {
@@ -1420,6 +1428,7 @@ export async function launchLibeufinServices(
t: GlobalTestState,
nexusUserBundle: NexusUserBundle[],
sandboxUserBundle: SandboxUserBundle[],
+ withFacades: string[] = [], // takes only "twg" and/or "anastasis"
): Promise<LibeufinServices> {
const db = await setupDb(t);
@@ -1469,16 +1478,24 @@ export async function launchLibeufinServices(
nb.remoteAccountName,
nb.localAccountName,
);
- await LibeufinNexusApi.createTwgFacade(libeufinNexus, nb.twgReq);
await LibeufinNexusApi.createUser(libeufinNexus, nb.userReq);
- await LibeufinNexusApi.postPermission(
- libeufinNexus,
- nb.twgTransferPermission,
- );
- await LibeufinNexusApi.postPermission(
- libeufinNexus,
- nb.twgHistoryPermission,
- );
+ for (let facade of withFacades) {
+ switch (facade) {
+ case "twg":
+ await LibeufinNexusApi.createTwgFacade(libeufinNexus, nb.twgReq);
+ await LibeufinNexusApi.postPermission(
+ libeufinNexus,
+ nb.twgTransferPermission,
+ );
+ await LibeufinNexusApi.postPermission(
+ libeufinNexus,
+ nb.twgHistoryPermission,
+ );
+ break;
+ case "anastasis":
+ await LibeufinNexusApi.createAnastasisFacade(libeufinNexus, nb.anastasisReq);
+ }
+ }
}
console.log(
"Nexus user(s) / connection(s) / facade(s) / permission(s): created",
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-facade-bad-request.ts b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-facade-bad-request.ts
index de7580b1f..1917c0c11 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-facade-bad-request.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-facade-bad-request.ts
@@ -45,6 +45,7 @@ export async function runLibeufinApiFacadeBadRequestTest(t: GlobalTestState) {
t,
[user01nexus],
[user01sandbox],
+ ["twg"],
);
console.log("malformed facade");
const baseUrl = libeufinServices.libeufinNexus.baseUrl;
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-facade.ts b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-facade.ts
index 1400d2e65..0a0957b37 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-facade.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-facade.ts
@@ -45,6 +45,7 @@ export async function runLibeufinApiFacadeTest(t: GlobalTestState) {
t,
[user01nexus],
[user01sandbox],
+ ["twg"],
);
let resp = await LibeufinNexusApi.getAllFacades(
libeufinServices.libeufinNexus,
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-facade-anastasis.ts b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-facade-anastasis.ts
new file mode 100644
index 000000000..f412ab8e4
--- /dev/null
+++ b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-facade-anastasis.ts
@@ -0,0 +1,75 @@
+/*
+ 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 } from "./harness";
+import {
+ SandboxUserBundle,
+ NexusUserBundle,
+ launchLibeufinServices,
+ LibeufinNexusApi,
+} from "./libeufin";
+
+/**
+ * Run basic test with LibEuFin.
+ */
+export async function runLibeufinApiFacadeTest(t: GlobalTestState) {
+ /**
+ * User saltetd "01"
+ */
+ const user01nexus = new NexusUserBundle(
+ "01",
+ "http://localhost:5010/ebicsweb",
+ );
+ const user01sandbox = new SandboxUserBundle("01");
+
+ /**
+ * Launch Sandbox and Nexus.
+ */
+ const libeufinServices = await launchLibeufinServices(
+ t,
+ [user01nexus],
+ [user01sandbox],
+ ["anastasis"],
+ );
+ let resp = await LibeufinNexusApi.getAllFacades(
+ libeufinServices.libeufinNexus,
+ );
+ // check that original facade shows up.
+ t.assertTrue(resp.data["facades"][0]["name"] == user01nexus.twgReq["name"]);
+
+ const anastasisBaseUrl: string = resp.data["facades"][0]["twgBaseUrl"];
+ t.assertTrue(typeof anastasisBaseUrl === "string");
+ t.assertTrue(anastasisBaseUrl.startsWith("http://"));
+ t.assertTrue(anastasisBaseUrl.endsWith("/"));
+
+ //***************************************//
+ // Here payments need to be generated //
+ // and checked via the Anastasis facade. //
+ //***************************************//
+
+ // delete it.
+ resp = await LibeufinNexusApi.deleteFacade(
+ libeufinServices.libeufinNexus,
+ user01nexus.anastasisReq["name"],
+ );
+ // check that no facades show up.
+ t.assertTrue(!resp.data.hasOwnProperty("facades"));
+}
+
+runLibeufinApiFacadeTest.suites = ["libeufin"];
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund-multiple-users.ts b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund-multiple-users.ts
index a79b705a8..d15a2d653 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund-multiple-users.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund-multiple-users.ts
@@ -65,6 +65,7 @@ export async function runLibeufinRefundMultipleUsersTest(t: GlobalTestState) {
t,
[user01nexus, user02nexus],
[user01sandbox, user02sandbox],
+ ["twg"],
);
/**
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund.ts b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund.ts
index 55a1f0c60..843a35d88 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund.ts
@@ -55,6 +55,7 @@ export async function runLibeufinRefundTest(t: GlobalTestState) {
t,
[user01nexus, user02nexus],
[user01sandbox, user02sandbox],
+ ["twg"],
);
/**