diff options
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"],    );    /**  | 
