diff options
Diffstat (limited to 'packages/taler-harness/src/integrationtests')
32 files changed, 26 insertions, 2079 deletions
| diff --git a/packages/taler-harness/src/integrationtests/test-age-restrictions-merchant.ts b/packages/taler-harness/src/integrationtests/test-age-restrictions-merchant.ts index 7f936a479..90b08724f 100644 --- a/packages/taler-harness/src/integrationtests/test-age-restrictions-merchant.ts +++ b/packages/taler-harness/src/integrationtests/test-age-restrictions-merchant.ts @@ -27,7 +27,7 @@ import {    withdrawViaBankV2,  } from "../harness/helpers.js";  import { -  BankAccessApiClient, +  TalerCorebankApiClient,    MerchantApiClient,    WireGatewayApiClient,  } from "@gnu-taler/taler-util"; @@ -179,7 +179,7 @@ export async function runAgeRestrictionsMerchantTest(t: GlobalTestState) {    // Pay with coin from tipping    { -    const bankClient = new BankAccessApiClient(bank.bankAccessApiBaseUrl); +    const bankClient = new TalerCorebankApiClient(bank.bankAccessApiBaseUrl);      const mbu = await bankClient.createRandomBankUser();      const tipReserveResp = await merchantClient.createTippingReserve({        exchange_url: exchange.baseUrl, diff --git a/packages/taler-harness/src/integrationtests/test-bank-api.ts b/packages/taler-harness/src/integrationtests/test-bank-api.ts index a13ff63c7..740e89c30 100644 --- a/packages/taler-harness/src/integrationtests/test-bank-api.ts +++ b/packages/taler-harness/src/integrationtests/test-bank-api.ts @@ -18,7 +18,7 @@   * Imports.   */  import { -  BankAccessApiClient, +  TalerCorebankApiClient,    CreditDebitIndicator,    WireGatewayApiClient,    createEddsaKeyPair, @@ -99,7 +99,7 @@ export async function runBankApiTest(t: GlobalTestState) {    console.log("setup done!"); -  const bankClient = new BankAccessApiClient(bank.bankAccessApiBaseUrl); +  const bankClient = new TalerCorebankApiClient(bank.bankAccessApiBaseUrl);    const bankUser = await bankClient.registerAccount("user1", "pw1"); diff --git a/packages/taler-harness/src/integrationtests/test-exchange-management.ts b/packages/taler-harness/src/integrationtests/test-exchange-management.ts index 9338a8988..329012e42 100644 --- a/packages/taler-harness/src/integrationtests/test-exchange-management.ts +++ b/packages/taler-harness/src/integrationtests/test-exchange-management.ts @@ -18,7 +18,7 @@   * Imports.   */  import { -  BankAccessApiClient, +  TalerCorebankApiClient,    ExchangesListResponse,    TalerErrorCode,    URL, @@ -263,7 +263,7 @@ export async function runExchangeManagementTest(    // Create withdrawal operation -  const bankClient = new BankAccessApiClient(bank.bankAccessApiBaseUrl); +  const bankClient = new TalerCorebankApiClient(bank.bankAccessApiBaseUrl);    const user = await bankClient.createRandomBankUser();    const wop = await bankClient.createWithdrawalOperation( diff --git a/packages/taler-harness/src/integrationtests/test-kyc.ts b/packages/taler-harness/src/integrationtests/test-kyc.ts index 1f7358b66..2b2b57183 100644 --- a/packages/taler-harness/src/integrationtests/test-kyc.ts +++ b/packages/taler-harness/src/integrationtests/test-kyc.ts @@ -18,7 +18,7 @@   * Imports.   */  import { -  BankAccessApiClient, +  TalerCorebankApiClient,    Duration,    j2s,    Logger, @@ -302,7 +302,7 @@ export async function runKycTest(t: GlobalTestState) {    // Withdraw digital cash into the wallet. -  const bankClient = new BankAccessApiClient(bank.bankAccessApiBaseUrl); +  const bankClient = new TalerCorebankApiClient(bank.bankAccessApiBaseUrl);    const amount = "TESTKUDOS:20";    const user = await bankClient.createRandomBankUser(); diff --git a/packages/taler-harness/src/integrationtests/test-libeufin-api-bankaccount.ts b/packages/taler-harness/src/integrationtests/test-libeufin-api-bankaccount.ts deleted file mode 100644 index e5e3dfe64..000000000 --- a/packages/taler-harness/src/integrationtests/test-libeufin-api-bankaccount.ts +++ /dev/null @@ -1,108 +0,0 @@ -/* - 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/harness.js"; -import { -  LibeufinNexusApi, -  LibeufinNexusService, -  LibeufinSandboxService, -  LibeufinSandboxApi, -  findNexusPayment, -} from "../harness/libeufin.js"; - -/** - * Run basic test with LibEuFin. - */ -export async function runLibeufinApiBankaccountTest(t: GlobalTestState) { -  const nexus = await LibeufinNexusService.create(t, { -    httpPort: 5011, -    databaseJdbcUri: `jdbc:sqlite:${t.testDir}/libeufin-nexus.sqlite3`, -  }); -  await nexus.start(); -  await nexus.pingUntilAvailable(); - -  await LibeufinNexusApi.createUser(nexus, { -    username: "one", -    password: "testing-the-bankaccount-api", -  }); -  const sandbox = await LibeufinSandboxService.create(t, { -    httpPort: 5012, -    databaseJdbcUri: `jdbc:sqlite:${t.testDir}/libeufin-sandbox.sqlite3`, -  }); -  await sandbox.start(); -  await sandbox.pingUntilAvailable(); -  await LibeufinSandboxApi.createEbicsHost(sandbox, "mock"); -  await LibeufinSandboxApi.createDemobankAccount( -    "mock", -    "password-unused", -    { baseUrl: sandbox.baseUrl + "/demobanks/default/access-api/" }, -    "DE71500105179674997361", -  ); -  await LibeufinSandboxApi.createDemobankEbicsSubscriber( -    { -      hostID: "mock", -      partnerID: "mock", -      userID: "mock", -    }, -    "mock", -    { baseUrl: sandbox.baseUrl + "/demobanks/default/" }, -  ); -  await LibeufinNexusApi.createEbicsBankConnection(nexus, { -    name: "bankaccount-api-test-connection", -    ebicsURL: "http://localhost:5012/ebicsweb", -    hostID: "mock", -    userID: "mock", -    partnerID: "mock", -  }); -  await LibeufinNexusApi.connectBankConnection( -    nexus, -    "bankaccount-api-test-connection", -  ); -  await LibeufinNexusApi.fetchAccounts( -    nexus, -    "bankaccount-api-test-connection", -  ); - -  await LibeufinNexusApi.importConnectionAccount( -    nexus, -    "bankaccount-api-test-connection", -    "mock", -    "local-mock", -  ); -  await LibeufinSandboxApi.simulateIncomingTransaction( -    sandbox, -    "mock", // creditor bankaccount label -    { -      debtorIban: "DE84500105176881385584", -      debtorBic: "BELADEBEXXX", -      debtorName: "mock2", -      amount: "EUR:1", -      subject: "mock subject", -    }, -  ); -  await LibeufinNexusApi.fetchTransactions(nexus, "local-mock"); -  let transactions = await LibeufinNexusApi.getAccountTransactions( -    nexus, -    "local-mock", -  ); -  let el = findNexusPayment("mock subject", transactions); -  t.assertTrue(el instanceof Object); -} - -runLibeufinApiBankaccountTest.suites = ["libeufin"]; diff --git a/packages/taler-harness/src/integrationtests/test-libeufin-api-bankconnection.ts b/packages/taler-harness/src/integrationtests/test-libeufin-api-bankconnection.ts deleted file mode 100644 index 243500dc9..000000000 --- a/packages/taler-harness/src/integrationtests/test-libeufin-api-bankconnection.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* - 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/harness.js"; -import { LibeufinNexusApi, LibeufinNexusService } from "../harness/libeufin.js"; - -/** - * Run basic test with LibEuFin. - */ -export async function runLibeufinApiBankconnectionTest(t: GlobalTestState) { -  const nexus = await LibeufinNexusService.create(t, { -    httpPort: 5011, -    databaseJdbcUri: `jdbc:sqlite:${t.testDir}/libeufin-nexus.sqlite3`, -  }); -  await nexus.start(); -  await nexus.pingUntilAvailable(); - -  await LibeufinNexusApi.createUser(nexus, { -    username: "one", -    password: "testing-the-bankconnection-api", -  }); - -  await LibeufinNexusApi.createEbicsBankConnection(nexus, { -    name: "bankconnection-api-test-connection", -    ebicsURL: "http://localhost:5012/ebicsweb", -    hostID: "mock", -    userID: "mock", -    partnerID: "mock", -  }); - -  let connections = await LibeufinNexusApi.getAllConnections(nexus); -  t.assertTrue(connections.bankConnections.length == 1); - -  await LibeufinNexusApi.deleteBankConnection(nexus, { -    bankConnectionId: "bankconnection-api-test-connection", -  }); -  connections = await LibeufinNexusApi.getAllConnections(nexus); -  t.assertTrue(connections.bankConnections.length == 0); -} -runLibeufinApiBankconnectionTest.suites = ["libeufin"]; diff --git a/packages/taler-harness/src/integrationtests/test-libeufin-api-facade-bad-request.ts b/packages/taler-harness/src/integrationtests/test-libeufin-api-facade-bad-request.ts deleted file mode 100644 index 27cc81588..000000000 --- a/packages/taler-harness/src/integrationtests/test-libeufin-api-facade-bad-request.ts +++ /dev/null @@ -1,68 +0,0 @@ -/* - 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 { URL } from "@gnu-taler/taler-util"; -import { GlobalTestState, harnessHttpLib } from "../harness/harness.js"; -import { -  launchLibeufinServices, -  NexusUserBundle, -  SandboxUserBundle, -} from "../harness/libeufin.js"; -import { -  createPlatformHttpLib, -  makeBasicAuthHeader, -} from "@gnu-taler/taler-util/http"; - -export async function runLibeufinApiFacadeBadRequestTest(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], -    ["twg"], -  ); -  console.log("malformed facade"); -  const baseUrl = libeufinServices.libeufinNexus.baseUrl; -  let url = new URL("facades", baseUrl); -  let resp = await harnessHttpLib.fetch(url.href, { -    method: "POST", -    body: { -      name: "malformed-facade", -      type: "taler-wire-gateway", -      config: {}, // malformation here. -    }, -    headers: { -      Authorization: makeBasicAuthHeader("admin", "test"), -    }, -  }); -  t.assertTrue(resp.status == 400); -} - -runLibeufinApiFacadeBadRequestTest.suites = ["libeufin"]; diff --git a/packages/taler-harness/src/integrationtests/test-libeufin-api-facade.ts b/packages/taler-harness/src/integrationtests/test-libeufin-api-facade.ts deleted file mode 100644 index a819dd481..000000000 --- a/packages/taler-harness/src/integrationtests/test-libeufin-api-facade.ts +++ /dev/null @@ -1,70 +0,0 @@ -/* - 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/harness.js"; -import { -  SandboxUserBundle, -  NexusUserBundle, -  launchLibeufinServices, -  LibeufinNexusApi, -} from "../harness/libeufin.js"; - -/** - * 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], -    ["twg"], -  ); -  let resp = await LibeufinNexusApi.getAllFacades( -    libeufinServices.libeufinNexus, -  ); -  // check that original facade shows up. -  t.assertTrue(resp.facades[0].name == user01nexus.twgReq["name"]); - -  const twgBaseUrl: string = resp.facades[0]["baseUrl"]; -  t.assertTrue(typeof twgBaseUrl === "string"); -  t.assertTrue(twgBaseUrl.startsWith("http://")); -  t.assertTrue(twgBaseUrl.endsWith("/")); - -  // delete it. -  await LibeufinNexusApi.deleteFacade( -    libeufinServices.libeufinNexus, -    user01nexus.twgReq["name"], -  ); -  resp = await LibeufinNexusApi.getAllFacades(libeufinServices.libeufinNexus); -  t.assertTrue(!resp.hasOwnProperty("facades")); -} - -runLibeufinApiFacadeTest.suites = ["libeufin"]; diff --git a/packages/taler-harness/src/integrationtests/test-libeufin-api-permissions.ts b/packages/taler-harness/src/integrationtests/test-libeufin-api-permissions.ts deleted file mode 100644 index 56443c20a..000000000 --- a/packages/taler-harness/src/integrationtests/test-libeufin-api-permissions.ts +++ /dev/null @@ -1,65 +0,0 @@ -/* - 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/harness.js"; -import { -  NexusUserBundle, -  LibeufinNexusApi, -  LibeufinNexusService, -} from "../harness/libeufin.js"; - -/** - * Run basic test with LibEuFin. - */ -export async function runLibeufinApiPermissionsTest(t: GlobalTestState) { -  const nexus = await LibeufinNexusService.create(t, { -    httpPort: 5011, -    databaseJdbcUri: `jdbc:sqlite:${t.testDir}/libeufin-nexus.sqlite3`, -  }); -  await nexus.start(); -  await nexus.pingUntilAvailable(); - -  const user01nexus = new NexusUserBundle( -    "01", -    "http://localhost:5010/ebicsweb", -  ); - -  await LibeufinNexusApi.createUser(nexus, user01nexus.userReq); -  await LibeufinNexusApi.postPermission( -    nexus, -    user01nexus.twgTransferPermission, -  ); -  let transferPermission = await LibeufinNexusApi.getAllPermissions(nexus); -  let element = transferPermission["permissions"].pop(); -  t.assertTrue(!!element); -  t.assertTrue( -    element["permissionName"] == "facade.talerwiregateway.transfer" && -      element["subjectId"] == "username-01", -  ); -  let denyTransfer = user01nexus.twgTransferPermission; - -  // Now revoke permission. -  denyTransfer["action"] = "revoke"; -  await LibeufinNexusApi.postPermission(nexus, denyTransfer); - -  transferPermission = await LibeufinNexusApi.getAllPermissions(nexus); -  t.assertTrue(transferPermission["permissions"].length == 0); -} - -runLibeufinApiPermissionsTest.suites = ["libeufin"]; diff --git a/packages/taler-harness/src/integrationtests/test-libeufin-api-sandbox-camt.ts b/packages/taler-harness/src/integrationtests/test-libeufin-api-sandbox-camt.ts deleted file mode 100644 index 22b411dc2..000000000 --- a/packages/taler-harness/src/integrationtests/test-libeufin-api-sandbox-camt.ts +++ /dev/null @@ -1,76 +0,0 @@ -/* - 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/harness.js"; -import { -  LibeufinSandboxApi, -  LibeufinSandboxService, -} from "../harness/libeufin.js"; - -// This test only checks that LibEuFin doesn't fail when -// it generates Camt statements - no assertions take place. -// Furthermore, it prints the Camt.053 being generated. -export async function runLibeufinApiSandboxCamtTest(t: GlobalTestState) { -  const sandbox = await LibeufinSandboxService.create(t, { -    httpPort: 5012, -    databaseJdbcUri: `jdbc:sqlite:${t.testDir}/libeufin-sandbox.sqlite3`, -  }); -  await sandbox.start(); -  await sandbox.pingUntilAvailable(); - -  await LibeufinSandboxApi.createDemobankAccount( -    "mock-account-0", -    "password-unused", -    { baseUrl: sandbox.baseUrl + "/demobanks/default/access-api/" }, -  ); -  await LibeufinSandboxApi.createDemobankAccount( -    "mock-account-1", -    "password-unused", -    { baseUrl: sandbox.baseUrl + "/demobanks/default/access-api/" }, -  ); -  await sandbox.makeTransaction( -    "mock-account-0", -    "mock-account-1", -    "EUR:1", -    "+1", -  ); -  await sandbox.makeTransaction( -    "mock-account-0", -    "mock-account-1", -    "EUR:1", -    "+1", -  ); -  await sandbox.makeTransaction( -    "mock-account-0", -    "mock-account-1", -    "EUR:1", -    "+1", -  ); -  await sandbox.makeTransaction( -    "mock-account-1", -    "mock-account-0", -    "EUR:5", -    "minus 5", -  ); -  await sandbox.c53tick(); -  let ret = await LibeufinSandboxApi.getCamt053(sandbox, "mock-account-1"); -  console.log(ret); -} -runLibeufinApiSandboxCamtTest.experimental = true; -runLibeufinApiSandboxCamtTest.suites = ["libeufin"]; diff --git a/packages/taler-harness/src/integrationtests/test-libeufin-api-sandbox-transactions.ts b/packages/taler-harness/src/integrationtests/test-libeufin-api-sandbox-transactions.ts deleted file mode 100644 index 6cfc55aa6..000000000 --- a/packages/taler-harness/src/integrationtests/test-libeufin-api-sandbox-transactions.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* - 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/harness.js"; -import { -  LibeufinSandboxApi, -  LibeufinSandboxService, -} from "../harness/libeufin.js"; - -export async function runLibeufinApiSandboxTransactionsTest( -  t: GlobalTestState, -) { -  const sandbox = await LibeufinSandboxService.create(t, { -    httpPort: 5012, -    databaseJdbcUri: `jdbc:sqlite:${t.testDir}/libeufin-sandbox.sqlite3`, -  }); -  await sandbox.start(); -  await sandbox.pingUntilAvailable(); -  await LibeufinSandboxApi.createDemobankAccount( -    "mock-account", -    "password-unused", -    { baseUrl: sandbox.baseUrl + "/demobanks/default/access-api/" }, -    "DE71500105179674997361", -  ); -  await LibeufinSandboxApi.simulateIncomingTransaction( -    sandbox, -    "mock-account", -    { -      debtorIban: "DE84500105176881385584", -      debtorBic: "BELADEBEXXX", -      debtorName: "mock2", -      subject: "mock subject", -      amount: "EUR:1", -    }, -  ); -  await LibeufinSandboxApi.simulateIncomingTransaction( -    sandbox, -    "mock-account", -    { -      debtorIban: "DE84500105176881385584", -      debtorBic: "BELADEBEXXX", -      debtorName: "mock2", -      subject: "mock subject 2", -      amount: "EUR:1.1", -    }, -  ); -  let ret = await LibeufinSandboxApi.getAccountInfoWithBalance( -    sandbox, -    "mock-account", -  ); -  t.assertAmountEquals(ret.balance, "EUR:2.1"); -} -runLibeufinApiSandboxTransactionsTest.suites = ["libeufin"]; diff --git a/packages/taler-harness/src/integrationtests/test-libeufin-api-scheduling.ts b/packages/taler-harness/src/integrationtests/test-libeufin-api-scheduling.ts deleted file mode 100644 index 15ed2ab78..000000000 --- a/packages/taler-harness/src/integrationtests/test-libeufin-api-scheduling.ts +++ /dev/null @@ -1,106 +0,0 @@ -/* - 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/harness.js"; -import { -  launchLibeufinServices, -  LibeufinNexusApi, -  LibeufinNexusService, -  NexusUserBundle, -  SandboxUserBundle, -} from "../harness/libeufin.js"; - -/** - * Test Nexus scheduling API.  It creates a task, check whether it shows - * up, then deletes it, and check if it's gone.  Ideally, a check over the - * _liveliness_ of a scheduled task should happen. - */ -export async function runLibeufinApiSchedulingTest(t: GlobalTestState) { -  const nexus = await LibeufinNexusService.create(t, { -    httpPort: 5011, -    databaseJdbcUri: `jdbc:sqlite:${t.testDir}/libeufin-nexus.sqlite3`, -  }); -  await nexus.start(); -  await nexus.pingUntilAvailable(); - -  const user01nexus = new NexusUserBundle( -    "01", -    "http://localhost:5010/ebicsweb", -  ); -  const user01sandbox = new SandboxUserBundle("01"); -  await launchLibeufinServices(t, [user01nexus], [user01sandbox]); -  await LibeufinNexusApi.postTask(nexus, user01nexus.localAccountName, { -    name: "test-task", -    cronspec: "* * *", -    type: "fetch", -    params: { -      level: "all", -      rangeType: "all", -    }, -  }); -  let resp = await LibeufinNexusApi.getTask( -    nexus, -    user01nexus.localAccountName, -    "test-task", -  ); -  t.assertTrue(resp.taskName == "test-task"); -  await LibeufinNexusApi.deleteTask( -    nexus, -    user01nexus.localAccountName, -    "test-task", -  ); -  try { -    await LibeufinNexusApi.getTask( -      nexus, -      user01nexus.localAccountName, -      "test-task", -    ); -  } catch (err: any) { -    t.assertTrue(err.response.status == 404); -  } - -  // Same with submit task. -  await LibeufinNexusApi.postTask(nexus, user01nexus.localAccountName, { -    name: "test-task", -    cronspec: "* * *", -    type: "submit", -    params: {}, -  }); -  resp = await LibeufinNexusApi.getTask( -    nexus, -    user01nexus.localAccountName, -    "test-task", -  ); -  t.assertTrue(resp.taskName == "test-task"); -  await LibeufinNexusApi.deleteTask( -    nexus, -    user01nexus.localAccountName, -    "test-task", -  ); -  try { -    await LibeufinNexusApi.getTask( -      nexus, -      user01nexus.localAccountName, -      "test-task", -    ); -  } catch (err: any) { -    t.assertTrue(err.response.status == 404); -  } -} -runLibeufinApiSchedulingTest.suites = ["libeufin"]; diff --git a/packages/taler-harness/src/integrationtests/test-libeufin-api-users.ts b/packages/taler-harness/src/integrationtests/test-libeufin-api-users.ts deleted file mode 100644 index 662b22bbe..000000000 --- a/packages/taler-harness/src/integrationtests/test-libeufin-api-users.ts +++ /dev/null @@ -1,63 +0,0 @@ -/* - 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/harness.js"; -import { LibeufinNexusApi, LibeufinNexusService } from "../harness/libeufin.js"; - -/** - * Run basic test with LibEuFin. - */ -export async function runLibeufinApiUsersTest(t: GlobalTestState) { -  const nexus = await LibeufinNexusService.create(t, { -    httpPort: 5011, -    databaseJdbcUri: `jdbc:sqlite:${t.testDir}/libeufin-nexus.sqlite3`, -  }); -  await nexus.start(); -  await nexus.pingUntilAvailable(); - -  await LibeufinNexusApi.createUser(nexus, { -    username: "one", -    password: "will-be-changed", -  }); - -  await LibeufinNexusApi.changePassword( -    nexus, -    "one", -    { -      newPassword: "got-changed", -    }, -    { -      auth: { -        username: "admin", -        password: "test", -      }, -    }, -  ); - -  let resp = await LibeufinNexusApi.getUser(nexus, { -    auth: { -      username: "one", -      password: "got-changed", -    }, -  }); -  console.log(resp); -  t.assertTrue(resp["username"] == "one" && !resp["superuser"]); -} - -runLibeufinApiUsersTest.suites = ["libeufin"]; diff --git a/packages/taler-harness/src/integrationtests/test-libeufin-bad-gateway.ts b/packages/taler-harness/src/integrationtests/test-libeufin-bad-gateway.ts deleted file mode 100644 index 1187d923b..000000000 --- a/packages/taler-harness/src/integrationtests/test-libeufin-bad-gateway.ts +++ /dev/null @@ -1,75 +0,0 @@ -/* - 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/harness.js"; -import { -  NexusUserBundle, -  LibeufinNexusApi, -  LibeufinNexusService, -  LibeufinSandboxService, -} from "../harness/libeufin.js"; - -/** - * Testing how Nexus reacts when the Sandbox is unreachable. - * Typically, because the user specified a wrong EBICS endpoint. - */ -export async function runLibeufinBadGatewayTest(t: GlobalTestState) { -  /** -   * User saltetd "01" -   */ -  const user01nexus = new NexusUserBundle( -    "01", -    "http://localhost:5010/not-found", // the EBICS endpoint at Sandbox -  ); - -  // Start Nexus -  const libeufinNexus = await LibeufinNexusService.create(t, { -    httpPort: 5011, -    databaseJdbcUri: `jdbc:sqlite:${t.testDir}/libeufin-nexus.sqlite3`, -  }); -  await libeufinNexus.start(); -  await libeufinNexus.pingUntilAvailable(); - -  // Start Sandbox -  const libeufinSandbox = await LibeufinSandboxService.create(t, { -    httpPort: 5010, -    databaseJdbcUri: `jdbc:sqlite:${t.testDir}/libeufin-sandbox.sqlite3`, -  }); -  await libeufinSandbox.start(); -  await libeufinSandbox.pingUntilAvailable(); - -  // Connecting to a non-existent Sandbox endpoint. -  await LibeufinNexusApi.createEbicsBankConnection( -    libeufinNexus, -    user01nexus.connReq, -  ); - -  // 502 Bad Gateway expected. -  try { -    await LibeufinNexusApi.connectBankConnection( -      libeufinNexus, -      user01nexus.connReq.name, -    ); -  } catch (e: any) { -    t.assertTrue(e.response.status == 502); -    return; -  } -  t.assertTrue(false); -} -runLibeufinBadGatewayTest.suites = ["libeufin"]; diff --git a/packages/taler-harness/src/integrationtests/test-libeufin-basic.ts b/packages/taler-harness/src/integrationtests/test-libeufin-basic.ts deleted file mode 100644 index d87278197..000000000 --- a/packages/taler-harness/src/integrationtests/test-libeufin-basic.ts +++ /dev/null @@ -1,317 +0,0 @@ -/* - 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 { -  AbsoluteTime, -  Duration, -  MerchantContractTerms, -} from "@gnu-taler/taler-util"; -import { WalletApiOperation } from "@gnu-taler/taler-wallet-core"; -import { CoinConfig, defaultCoinConfig } from "../harness/denomStructures.js"; -import { -  DbInfo, -  ExchangeService, -  GlobalTestState, -  HarnessExchangeBankAccount, -  MerchantService, -  WalletClient, -  setupDb, -} from "../harness/harness.js"; -import { -  createWalletDaemonWithClient, -  makeTestPaymentV2, -} from "../harness/helpers.js"; -import { -  LibeufinNexusApi, -  LibeufinNexusService, -  LibeufinSandboxApi, -  LibeufinSandboxService, -} from "../harness/libeufin.js"; - -const exchangeIban = "DE71500105179674997361"; -const customerIban = "DE84500105176881385584"; -const customerBic = "BELADEBEXXX"; -const merchantIban = "DE42500105171245624648"; - -export interface LibeufinTestEnvironment { -  commonDb: DbInfo; -  exchange: ExchangeService; -  exchangeBankAccount: HarnessExchangeBankAccount; -  merchant: MerchantService; -  walletClient: WalletClient; -  libeufinSandbox: LibeufinSandboxService; -  libeufinNexus: LibeufinNexusService; -} - -/** - * Create a Taler environment with LibEuFin and an EBICS account. - */ -export async function createLibeufinTestEnvironment( -  t: GlobalTestState, -  coinConfig: CoinConfig[] = defaultCoinConfig.map((x) => x("EUR")), -): Promise<LibeufinTestEnvironment> { -  const db = await setupDb(t); - -  const libeufinSandbox = await LibeufinSandboxService.create(t, { -    httpPort: 5010, -    databaseJdbcUri: db.connStr, -  }); - -  await libeufinSandbox.start(); -  await libeufinSandbox.pingUntilAvailable(); - -  const libeufinNexus = await LibeufinNexusService.create(t, { -    httpPort: 5011, -    databaseJdbcUri: db.connStr, -  }); - -  await libeufinNexus.start(); -  await libeufinNexus.pingUntilAvailable(); - -  await LibeufinSandboxApi.createEbicsHost(libeufinSandbox, "host01"); -  // Subscriber and bank Account for the exchange -  await LibeufinSandboxApi.createDemobankAccount( -    "exchangeacct", -    "password-unused", -    { baseUrl: libeufinSandbox.baseUrl + "/demobanks/default/access-api/" }, -    exchangeIban, -  ); -  await LibeufinSandboxApi.createDemobankEbicsSubscriber( -    { -      hostID: "host01", -      partnerID: "partner01", -      userID: "user01", -    }, -    "exchangeacct", -    { baseUrl: libeufinSandbox.baseUrl + "/demobanks/default/" }, -  ); - -  await LibeufinSandboxApi.createDemobankAccount( -    "merchantacct", -    "password-unused", -    { baseUrl: libeufinSandbox.baseUrl + "/demobanks/default/access-api/" }, -    merchantIban, -  ); -  await LibeufinSandboxApi.createDemobankEbicsSubscriber( -    { -      hostID: "host01", -      partnerID: "partner02", -      userID: "user02", -    }, -    "merchantacct", -    { baseUrl: libeufinSandbox.baseUrl + "/demobanks/default/" }, -  ); - -  await LibeufinNexusApi.createEbicsBankConnection(libeufinNexus, { -    name: "myconn", -    ebicsURL: "http://localhost:5010/ebicsweb", -    hostID: "host01", -    partnerID: "partner01", -    userID: "user01", -  }); -  await LibeufinNexusApi.connectBankConnection(libeufinNexus, "myconn"); -  await LibeufinNexusApi.fetchAccounts(libeufinNexus, "myconn"); -  await LibeufinNexusApi.importConnectionAccount( -    libeufinNexus, -    "myconn", -    "exchangeacct", -    "myacct", -  ); - -  await LibeufinNexusApi.createTwgFacade(libeufinNexus, { -    name: "twg1", -    accountName: "myacct", -    connectionName: "myconn", -    currency: "EUR", -    reserveTransferLevel: "report", -  }); - -  await LibeufinNexusApi.createUser(libeufinNexus, { -    username: "twguser", -    password: "twgpw", -  }); - -  await LibeufinNexusApi.postPermission(libeufinNexus, { -    action: "grant", -    permission: { -      subjectType: "user", -      subjectId: "twguser", -      resourceType: "facade", -      resourceId: "twg1", -      permissionName: "facade.talerWireGateway.history", -    }, -  }); - -  await LibeufinNexusApi.postPermission(libeufinNexus, { -    action: "grant", -    permission: { -      subjectType: "user", -      subjectId: "twguser", -      resourceType: "facade", -      resourceId: "twg1", -      permissionName: "facade.talerWireGateway.transfer", -    }, -  }); - -  const exchange = ExchangeService.create(t, { -    name: "testexchange-1", -    currency: "EUR", -    httpPort: 8081, -    database: db.connStr, -  }); - -  const merchant = await MerchantService.create(t, { -    name: "testmerchant-1", -    currency: "EUR", -    httpPort: 8083, -    database: db.connStr, -  }); - -  const exchangeBankAccount: HarnessExchangeBankAccount = { -    accountName: "twguser", -    accountPassword: "twgpw", -    accountPaytoUri: `payto://iban/${exchangeIban}?receiver-name=Exchange`, -    wireGatewayApiBaseUrl: -      "http://localhost:5011/facades/twg1/taler-wire-gateway/", -  }; - -  exchange.addBankAccount("1", exchangeBankAccount); - -  exchange.addCoinConfigList(coinConfig); - -  await exchange.start(); -  await exchange.pingUntilAvailable(); - -  merchant.addExchange(exchange); - -  await merchant.start(); -  await merchant.pingUntilAvailable(); - -  await merchant.addInstanceWithWireAccount({ -    id: "default", -    name: "Default Instance", -    paytoUris: [`payto://iban/${merchantIban}?receiver-name=Merchant`], -    defaultWireTransferDelay: Duration.toTalerProtocolDuration( -      Duration.getZero(), -    ), -  }); - -  console.log("setup done!"); - -  const { walletClient } = await createWalletDaemonWithClient(t, { -    name: "default", -  }); - -  return { -    commonDb: db, -    exchange, -    merchant, -    walletClient, -    exchangeBankAccount, -    libeufinNexus, -    libeufinSandbox, -  }; -} - -/** - * Run basic test with LibEuFin. - */ -export async function runLibeufinBasicTest(t: GlobalTestState) { -  // Set up test environment - -  const { walletClient, exchange, merchant, libeufinSandbox, libeufinNexus } = -    await createLibeufinTestEnvironment(t); - -  await walletClient.call(WalletApiOperation.AddExchange, { -    exchangeBaseUrl: exchange.baseUrl, -  }); - -  const wr = await walletClient.call( -    WalletApiOperation.AcceptManualWithdrawal, -    { -      exchangeBaseUrl: exchange.baseUrl, -      amount: "EUR:15", -    }, -  ); - -  const reservePub: string = wr.reservePub; - -  await LibeufinSandboxApi.simulateIncomingTransaction( -    libeufinSandbox, -    "exchangeacct", -    { -      amount: "EUR:15.00", -      debtorBic: customerBic, -      debtorIban: customerIban, -      debtorName: "Jane Customer", -      subject: `Taler Top-up ${reservePub}`, -    }, -  ); - -  await LibeufinNexusApi.fetchTransactions(libeufinNexus, "myacct"); - -  await exchange.runWirewatchOnce(); - -  await walletClient.call(WalletApiOperation.TestingWaitTransactionsFinal, {}); - -  const bal = await walletClient.call(WalletApiOperation.GetBalances, {}); -  console.log("balances", JSON.stringify(bal, undefined, 2)); -  t.assertAmountEquals(bal.balances[0].available, "EUR:14.7"); - -  const order: Partial<MerchantContractTerms> = { -    summary: "Buy me!", -    amount: "EUR:5", -    fulfillment_url: "taler://fulfillment-success/thx", -    wire_transfer_deadline: AbsoluteTime.toProtocolTimestamp( -      AbsoluteTime.now(), -    ), -  }; - -  await makeTestPaymentV2(t, { walletClient, merchant, order }); - -  await exchange.runAggregatorOnce(); -  await exchange.runTransferOnce(); - -  await LibeufinNexusApi.submitAllPaymentInitiations(libeufinNexus, "myacct"); - -  const exchangeTransactions = await LibeufinSandboxApi.getAccountTransactions( -    libeufinSandbox, -    "exchangeacct", -  ); - -  console.log( -    "exchange transactions:", -    JSON.stringify(exchangeTransactions, undefined, 2), -  ); - -  t.assertDeepEqual( -    exchangeTransactions.payments[0].creditDebitIndicator, -    "credit", -  ); -  t.assertDeepEqual( -    exchangeTransactions.payments[1].creditDebitIndicator, -    "debit", -  ); -  t.assertDeepEqual(exchangeTransactions.payments[1].debtorIban, exchangeIban); -  t.assertDeepEqual( -    exchangeTransactions.payments[1].creditorIban, -    merchantIban, -  ); -} -runLibeufinBasicTest.suites = ["libeufin"]; diff --git a/packages/taler-harness/src/integrationtests/test-libeufin-c5x.ts b/packages/taler-harness/src/integrationtests/test-libeufin-c5x.ts deleted file mode 100644 index 5097bc4d3..000000000 --- a/packages/taler-harness/src/integrationtests/test-libeufin-c5x.ts +++ /dev/null @@ -1,147 +0,0 @@ -/* - 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/harness.js"; -import { -  launchLibeufinServices, -  LibeufinNexusApi, -  NexusUserBundle, -  SandboxUserBundle, -} from "../harness/libeufin.js"; - -/** - * 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 runLibeufinC5xTest(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"], -  ); - -  // Check that C52 and C53 have zero entries. - -  // C52 -  await LibeufinNexusApi.fetchTransactions( -    libeufinServices.libeufinNexus, -    user01nexus.localAccountName, -    "all", // range -    "report", // level -  ); -  // C53 -  await LibeufinNexusApi.fetchTransactions( -    libeufinServices.libeufinNexus, -    user01nexus.localAccountName, -    "all", // range -    "statement", // level -  ); -  const nexusTxs = await LibeufinNexusApi.getAccountTransactions( -    libeufinServices.libeufinNexus, -    user01nexus.localAccountName, -  ); -  t.assertTrue(nexusTxs["transactions"].length == 0); - -  // Addressing one payment to user 01 -  await libeufinServices.libeufinSandbox.makeTransaction( -    user02sandbox.ebicsBankAccount.label, // debit -    user01sandbox.ebicsBankAccount.label, // credit -    "EUR:10", -    "first payment", -  ); - -  let expectOne = await LibeufinNexusApi.fetchTransactions( -    libeufinServices.libeufinNexus, -    user01nexus.localAccountName, -    "all", // range -    "report", // C52 -  ); -  t.assertTrue(expectOne.newTransactions == 1); -  t.assertTrue(expectOne.downloadedTransactions == 1); - -  /* Expect zero payments being downloaded because the -   * previous request consumed already the one pending -   * payment. -   */ -  let expectZero = await LibeufinNexusApi.fetchTransactions( -    libeufinServices.libeufinNexus, -    user01nexus.localAccountName, -    "all", // range -    "report", // C52 -  ); -  t.assertTrue(expectZero.newTransactions == 0); -  t.assertTrue(expectZero.downloadedTransactions == 0); - -  /** -   * A statement should still account zero payments because -   * so far the payment made before is still pending. -   */ -  expectZero = await LibeufinNexusApi.fetchTransactions( -    libeufinServices.libeufinNexus, -    user01nexus.localAccountName, -    "all", // range -    "statement", // C53 -  ); -  t.assertTrue(expectZero.newTransactions == 0); -  t.assertTrue(expectZero.downloadedTransactions == 0); - -  /** -   * Ticking now.  That books any pending transaction. -   */ -  await libeufinServices.libeufinSandbox.c53tick(); - -  /** -   * A statement is now expected to download the transaction, -   * although that got already ingested along the report -   * earlier.  Thus the transaction counts as downloaded but -   * not as new. -   */ -  expectOne = await LibeufinNexusApi.fetchTransactions( -    libeufinServices.libeufinNexus, -    user01nexus.localAccountName, -    "all", // range -    "statement", // C53 -  ); -  t.assertTrue(expectOne.downloadedTransactions == 1); -  t.assertTrue(expectOne.newTransactions == 0); -} -runLibeufinC5xTest.suites = ["libeufin"]; diff --git a/packages/taler-harness/src/integrationtests/test-libeufin-facade-anastasis.ts b/packages/taler-harness/src/integrationtests/test-libeufin-facade-anastasis.ts deleted file mode 100644 index 0efd55f44..000000000 --- a/packages/taler-harness/src/integrationtests/test-libeufin-facade-anastasis.ts +++ /dev/null @@ -1,179 +0,0 @@ -/* - 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/harness.js"; -import { -  SandboxUserBundle, -  NexusUserBundle, -  launchLibeufinServices, -  LibeufinNexusApi, -  LibeufinSandboxApi, -} from "../harness/libeufin.js"; - -/** - * Testing the Anastasis API, offered by the Anastasis facade. - */ -export async function runLibeufinAnastasisFacadeTest(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"], // create only one Anastasis facade. -  ); -  let resp = await LibeufinNexusApi.getAllFacades( -    libeufinServices.libeufinNexus, -  ); -  // check that original facade shows up. -  t.assertTrue( -    resp["facades"][0]["name"] == user01nexus.anastasisReq["name"], -  ); -const anastasisBaseUrl: string = resp["facades"][0]["baseUrl"]; -  t.assertTrue(typeof anastasisBaseUrl === "string"); -  t.assertTrue(anastasisBaseUrl.startsWith("http://")); -  t.assertTrue(anastasisBaseUrl.endsWith("/")); - -  await LibeufinNexusApi.fetchTransactions( -    libeufinServices.libeufinNexus, -    user01nexus.localAccountName, -  ); - -  await LibeufinNexusApi.postPermission(libeufinServices.libeufinNexus, { -    action: "grant", -    permission: { -      subjectId: user01nexus.userReq.username, -      subjectType: "user", -      resourceType: "facade", -      resourceId: user01nexus.anastasisReq.name, -      permissionName: "facade.anastasis.history", -    }, -  }); - -  // check if empty. -  let txsEmpty = await LibeufinNexusApi.getAnastasisTransactions( -    libeufinServices.libeufinNexus, -    anastasisBaseUrl, -    { delta: 5 }, -  ); - -  t.assertTrue(txsEmpty.data.incoming_transactions.length == 0); - -  LibeufinSandboxApi.simulateIncomingTransaction( -    libeufinServices.libeufinSandbox, -    user01sandbox.ebicsBankAccount.label, -    { -      debtorIban: "ES3314655813489414469157", -      debtorBic: "BCMAESM1XXX", -      debtorName: "Mock Donor", -      subject: "Anastasis donation", -      amount: "EUR:3", // Sandbox takes currency from its 'config' -    }, -  ); - -  LibeufinSandboxApi.simulateIncomingTransaction( -    libeufinServices.libeufinSandbox, -    user01sandbox.ebicsBankAccount.label, -    { -      debtorIban: "ES3314655813489414469157", -      debtorBic: "BCMAESM1XXX", -      debtorName: "Mock Donor", -      subject: "another Anastasis donation", -      amount: "EUR:1", // Sandbox takes currency from its "config" -    }, -  ); - -  await LibeufinNexusApi.fetchTransactions( -    libeufinServices.libeufinNexus, -    user01nexus.localAccountName, -  ); - -  let txs = await LibeufinNexusApi.getAnastasisTransactions( -    libeufinServices.libeufinNexus, -    anastasisBaseUrl, -    { delta: 5 }, -    user01nexus.userReq.username, -    user01nexus.userReq.password, -  ); - -  // check the two payments show up -  let txsList = txs.data.incoming_transactions; -  t.assertTrue(txsList.length == 2); -  t.assertTrue( -    [txsList[0].subject, txsList[1].subject].includes("Anastasis donation"), -  ); -  t.assertTrue( -    [txsList[0].subject, txsList[1].subject].includes( -      "another Anastasis donation", -    ), -  ); -  t.assertTrue(txsList[0].row_id == 1); -  t.assertTrue(txsList[1].row_id == 2); - -  LibeufinSandboxApi.simulateIncomingTransaction( -    libeufinServices.libeufinSandbox, -    user01sandbox.ebicsBankAccount.label, -    { -      debtorIban: "ES3314655813489414469157", -      debtorBic: "BCMAESM1XXX", -      debtorName: "Mock Donor", -      subject: "last Anastasis donation", -      amount: "EUR:10.10", // Sandbox takes currency from its "config" -    }, -  ); - -  await LibeufinNexusApi.fetchTransactions( -    libeufinServices.libeufinNexus, -    user01nexus.localAccountName, -  ); - -  let txsLast = await LibeufinNexusApi.getAnastasisTransactions( -    libeufinServices.libeufinNexus, -    anastasisBaseUrl, -    { delta: 5, start: 2 }, -    user01nexus.userReq.username, -    user01nexus.userReq.password, -  ); -  console.log( -    txsLast.data.incoming_transactions[0].subject == "last Anastasis donation", -  ); - -  let txsReverse = await LibeufinNexusApi.getAnastasisTransactions( -    libeufinServices.libeufinNexus, -    anastasisBaseUrl, -    { delta: -5, start: 4 }, -    user01nexus.userReq.username, -    user01nexus.userReq.password, -  ); -  t.assertTrue(txsReverse.data.incoming_transactions[0].row_id == 3); -  t.assertTrue(txsReverse.data.incoming_transactions[1].row_id == 2); -  t.assertTrue(txsReverse.data.incoming_transactions[2].row_id == 1); -} - -runLibeufinAnastasisFacadeTest.suites = ["libeufin"]; diff --git a/packages/taler-harness/src/integrationtests/test-libeufin-keyrotation.ts b/packages/taler-harness/src/integrationtests/test-libeufin-keyrotation.ts deleted file mode 100644 index a2c21d5d8..000000000 --- a/packages/taler-harness/src/integrationtests/test-libeufin-keyrotation.ts +++ /dev/null @@ -1,82 +0,0 @@ -/* - 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/harness.js"; -import { -  SandboxUserBundle, -  NexusUserBundle, -  launchLibeufinServices, -  LibeufinSandboxApi, -  LibeufinNexusApi, -} from "../harness/libeufin.js"; - -/** - * Run basic test with LibEuFin. - */ -export async function runLibeufinKeyrotationTest(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], -  ); - -  await LibeufinNexusApi.fetchTransactions( -    libeufinServices.libeufinNexus, -    user01nexus.localAccountName, -  ); - -  /* Rotate the Sandbox keys, and fetch the transactions again */ -  await LibeufinSandboxApi.rotateKeys( -    libeufinServices.libeufinSandbox, -    user01sandbox.ebicsBankAccount.subscriber.hostID, -  ); - -  try { -    await LibeufinNexusApi.fetchTransactions( -      libeufinServices.libeufinNexus, -      user01nexus.localAccountName, -    ); -  } catch (e: any) { -    /** -     * Asserting that Nexus responded with a 500 Internal server -     * error, because the bank signed the last response with a new -     * key pair that was never downloaded by Nexus. -     * -     * NOTE: the bank accepted the request addressed to the old -     * public key.  Should it in this case reject the request even -     * before trying to verify it? -     */ -    t.assertTrue(e.response.status == 500); -    // FIXME: uncomment and adapt the following command after #6723 is fixed. -    // t.assertTrue(e.response.data.code == 9000); -  } -} -runLibeufinKeyrotationTest.suites = ["libeufin"]; diff --git a/packages/taler-harness/src/integrationtests/test-libeufin-nexus-balance.ts b/packages/taler-harness/src/integrationtests/test-libeufin-nexus-balance.ts deleted file mode 100644 index 868f93759..000000000 --- a/packages/taler-harness/src/integrationtests/test-libeufin-nexus-balance.ts +++ /dev/null @@ -1,117 +0,0 @@ -/* - 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/harness.js"; -import { -  SandboxUserBundle, -  NexusUserBundle, -  launchLibeufinServices, -  LibeufinNexusApi, -} from "../harness/libeufin.js"; - -/** - * 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", -    "second 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.assertAmountEquals(accountInfo.data.lastSeenBalance, "EUR:20"); - -  // Booking the first two transactions. -  await libeufinServices.libeufinSandbox.c53tick(); - -  // user 01 gives 30 -  await libeufinServices.libeufinSandbox.makeTransaction( -    user01sandbox.ebicsBankAccount.label, -    user02sandbox.ebicsBankAccount.label, -    "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.assertDeepEqual(accountInfoDebit.data.lastSeenBalance, "-EUR:10"); -} - -runLibeufinNexusBalanceTest.suites = ["libeufin"]; -runLibeufinNexusBalanceTest.experimental = true; diff --git a/packages/taler-harness/src/integrationtests/test-libeufin-refund-multiple-users.ts b/packages/taler-harness/src/integrationtests/test-libeufin-refund-multiple-users.ts deleted file mode 100644 index 245f34331..000000000 --- a/packages/taler-harness/src/integrationtests/test-libeufin-refund-multiple-users.ts +++ /dev/null @@ -1,104 +0,0 @@ -/* - 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/harness.js"; -import { -  SandboxUserBundle, -  NexusUserBundle, -  launchLibeufinServices, -  LibeufinSandboxApi, -  LibeufinNexusApi, -} from "../harness/libeufin.js"; - -/** - * User 01 expects a refund from user 02, and expectedly user 03 - * should not be involved in the process. - */ -export async function runLibeufinRefundMultipleUsersTest(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"); - -  /** -   * User saltetd "03" -   */ -  const user03nexus = new NexusUserBundle( -    "03", -    "http://localhost:5010/ebicsweb", -  ); -  const user03sandbox = new SandboxUserBundle("03"); - -  /** -   * Launch Sandbox and Nexus. -   */ -  const libeufinServices = await launchLibeufinServices( -    t, -    [user01nexus, user02nexus], -    [user01sandbox, user02sandbox], -    ["twg"], -  ); - -  // user 01 gets the payment -  await libeufinServices.libeufinSandbox.makeTransaction( -    user02sandbox.ebicsBankAccount.label, // debit -    user01sandbox.ebicsBankAccount.label, // credit -    "EUR:1", -    "not a public key", -  ); - -  // user 01 fetches the payments -  await LibeufinNexusApi.fetchTransactions( -    libeufinServices.libeufinNexus, -    user01nexus.localAccountName, -  ); - -  // user 01 tries to submit the reimbursement, as -  // the payment didn't have a valid public key in -  // the subject. -  await LibeufinNexusApi.submitInitiatedPayment( -    libeufinServices.libeufinNexus, -    user01nexus.localAccountName, -    "1", // so far the only one that can exist. -  ); - -  // user 02 checks whether a reimbursement arrived. -  let history = await LibeufinSandboxApi.getAccountTransactions( -    libeufinServices.libeufinSandbox, -    user02sandbox.ebicsBankAccount["label"], -  ); -  // reimbursement arrived IFF the total payments are 2: -  // 1 the original (faulty) transaction + 1 the reimbursement. -  t.assertTrue(history["payments"].length == 2); -} - -runLibeufinRefundMultipleUsersTest.suites = ["libeufin"]; diff --git a/packages/taler-harness/src/integrationtests/test-libeufin-refund.ts b/packages/taler-harness/src/integrationtests/test-libeufin-refund.ts deleted file mode 100644 index d37363bab..000000000 --- a/packages/taler-harness/src/integrationtests/test-libeufin-refund.ts +++ /dev/null @@ -1,101 +0,0 @@ -/* - 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/harness.js"; -import { -  SandboxUserBundle, -  NexusUserBundle, -  launchLibeufinServices, -  LibeufinSandboxApi, -  LibeufinNexusApi, -} from "../harness/libeufin.js"; - -/** - * Run basic test with LibEuFin. - */ -export async function runLibeufinRefundTest(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 02 pays user 01 with a faulty (non Taler) subject. -  await libeufinServices.libeufinSandbox.makeTransaction( -    user02sandbox.ebicsBankAccount.label, // debit -    user01sandbox.ebicsBankAccount.label, // credit -    "EUR:1", -    "not a public key", -  ); - -  // The bad payment should be now ingested and prepared as -  // a reimbursement. -  await LibeufinNexusApi.fetchTransactions( -    libeufinServices.libeufinNexus, -    user01nexus.localAccountName, -  ); -  // Check that the payment arrived at the Nexus. -  const nexusTxs = await LibeufinNexusApi.getAccountTransactions( -    libeufinServices.libeufinNexus, -    user01nexus.localAccountName, -  ); -  t.assertTrue(nexusTxs["transactions"].length == 1); - -  // Submit the reimbursement -  await LibeufinNexusApi.submitInitiatedPayment( -    libeufinServices.libeufinNexus, -    user01nexus.localAccountName, -    // The initiated payment (= the reimbursement) ID below -    // got set by the Taler facade; at this point only one must -    // exist.  If "1" is not found, a 404 will make this test fail. -    "1", -  ); - -  // user 02 checks whether the reimbursement arrived. -  let history = await LibeufinSandboxApi.getAccountTransactions( -    libeufinServices.libeufinSandbox, -    user02sandbox.ebicsBankAccount["label"], -  ); -  // 2 payments must exist: 1 the original (faulty) payment + -  // 1 the reimbursement. -  t.assertTrue(history["payments"].length == 2); -} -runLibeufinRefundTest.suites = ["libeufin"]; diff --git a/packages/taler-harness/src/integrationtests/test-libeufin-sandbox-wire-transfer-cli.ts b/packages/taler-harness/src/integrationtests/test-libeufin-sandbox-wire-transfer-cli.ts deleted file mode 100644 index be467e2f1..000000000 --- a/packages/taler-harness/src/integrationtests/test-libeufin-sandbox-wire-transfer-cli.ts +++ /dev/null @@ -1,85 +0,0 @@ -/* - 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/harness.js"; -import { -  LibeufinSandboxApi, -  LibeufinSandboxService, -} from "../harness/libeufin.js"; - -export async function runLibeufinSandboxWireTransferCliTest( -  t: GlobalTestState, -) { -  const sandbox = await LibeufinSandboxService.create(t, { -    httpPort: 5012, -    databaseJdbcUri: `jdbc:sqlite:${t.testDir}/libeufin-sandbox.sqlite3`, -  }); -  await sandbox.start(); -  await sandbox.pingUntilAvailable(); -  await LibeufinSandboxApi.createDemobankAccount( -    "mock-account", -    "password-unused", -    { baseUrl: sandbox.baseUrl + "/demobanks/default/access-api/" }, -    "DE71500105179674997361", -  ); -  await LibeufinSandboxApi.createDemobankAccount( -    "mock-account-2", -    "password-unused", -    { baseUrl: sandbox.baseUrl + "/demobanks/default/access-api/" }, -    "DE71500105179674997364", -  ); - -  await sandbox.makeTransaction( -    "mock-account", -    "mock-account-2", -    "EUR:1", -    "one!", -  ); -  await sandbox.makeTransaction( -    "mock-account", -    "mock-account-2", -    "EUR:1", -    "two!", -  ); -  await sandbox.makeTransaction( -    "mock-account", -    "mock-account-2", -    "EUR:1", -    "three!", -  ); -  await sandbox.makeTransaction( -    "mock-account-2", -    "mock-account", -    "EUR:1", -    "Give one back.", -  ); -  await sandbox.makeTransaction( -    "mock-account-2", -    "mock-account", -    "EUR:0.11", -    "Give fraction back.", -  ); -  let ret = await LibeufinSandboxApi.getAccountInfoWithBalance( -    sandbox, -    "mock-account-2", -  ); -  console.log(ret.balance); -  t.assertTrue(ret.balance == "EUR:1.89"); -} -runLibeufinSandboxWireTransferCliTest.suites = ["libeufin"]; diff --git a/packages/taler-harness/src/integrationtests/test-libeufin-tutorial.ts b/packages/taler-harness/src/integrationtests/test-libeufin-tutorial.ts deleted file mode 100644 index 496b65ee3..000000000 --- a/packages/taler-harness/src/integrationtests/test-libeufin-tutorial.ts +++ /dev/null @@ -1,130 +0,0 @@ -/* - 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/harness.js"; -import { -  LibeufinNexusService, -  LibeufinSandboxService, -  LibeufinCli, -} from "../harness/libeufin.js"; - -/** - * Run basic test with LibEuFin. - */ -export async function runLibeufinTutorialTest(t: GlobalTestState) { -  // Set up test environment - -  const libeufinSandbox = await LibeufinSandboxService.create(t, { -    httpPort: 5010, -    databaseJdbcUri: `jdbc:sqlite:${t.testDir}/libeufin-sandbox.sqlite3`, -  }); - -  await libeufinSandbox.start(); -  await libeufinSandbox.pingUntilAvailable(); - -  const libeufinNexus = await LibeufinNexusService.create(t, { -    httpPort: 5011, -    databaseJdbcUri: `jdbc:sqlite:${t.testDir}/libeufin-nexus.sqlite3`, -  }); - -  const nexusUser = { username: "foo", password: "secret" }; -  const libeufinCli = new LibeufinCli(t, { -    sandboxUrl: libeufinSandbox.baseUrl, -    nexusUrl: libeufinNexus.baseUrl, -    sandboxDatabaseUri: `jdbc:sqlite:${t.testDir}/libeufin-sandbox.sqlite3`, -    nexusDatabaseUri: `jdbc:sqlite:${t.testDir}/libeufin-nexus.sqlite3`, -    nexusUser: nexusUser, -  }); - -  const ebicsDetails = { -    hostId: "testhost", -    partnerId: "partner01", -    userId: "user01", -  }; -  const bankAccountDetails = { -    currency: "EUR", -    iban: "DE18500105172929531888", -    bic: "INGDDEFFXXX", -    personName: "Jane Normal", -    accountName: "testacct01", -  }; - -  await libeufinCli.checkSandbox(); -  await libeufinCli.createEbicsHost("testhost"); -  await libeufinCli.createEbicsSubscriber(ebicsDetails); -  await libeufinCli.createEbicsBankAccount(ebicsDetails, bankAccountDetails); -  await libeufinCli.generateTransactions(bankAccountDetails.accountName); - -  await libeufinNexus.start(); -  await libeufinNexus.pingUntilAvailable(); - -  await libeufinNexus.createNexusSuperuser(nexusUser); -  const connectionDetails = { -    subscriberDetails: ebicsDetails, -    ebicsUrl: `${libeufinSandbox.baseUrl}ebicsweb`, // FIXME: need appropriate URL concatenation -    connectionName: "my-ebics-conn", -  }; -  await libeufinCli.createEbicsConnection(connectionDetails); -  await libeufinCli.createBackupFile({ -    passphrase: "secret", -    outputFile: `${t.testDir}/connection-backup.json`, -    connectionName: connectionDetails.connectionName, -  }); -  await libeufinCli.createKeyLetter({ -    outputFile: `${t.testDir}/letter.pdf`, -    connectionName: connectionDetails.connectionName, -  }); -  await libeufinCli.connect(connectionDetails.connectionName); -  await libeufinCli.downloadBankAccounts(connectionDetails.connectionName); -  await libeufinCli.listOfferedBankAccounts(connectionDetails.connectionName); - -  const bankAccountImportDetails = { -    offeredBankAccountName: bankAccountDetails.accountName, -    nexusBankAccountName: "at-nexus-testacct01", -    connectionName: connectionDetails.connectionName, -  }; - -  await libeufinCli.importBankAccount(bankAccountImportDetails); -  await libeufinSandbox.c53tick(); -  await libeufinCli.fetchTransactions( -    bankAccountImportDetails.nexusBankAccountName, -  ); -  await libeufinCli.transactions(bankAccountImportDetails.nexusBankAccountName); - -  const paymentDetails = { -    creditorIban: "DE42500105171245624648", -    creditorBic: "BELADEBEXXX", -    creditorName: "Mina Musterfrau", -    subject: "Purchase 01234", -    amount: "1.0", -    currency: "EUR", -    nexusBankAccountName: bankAccountImportDetails.nexusBankAccountName, -  }; -  await libeufinCli.preparePayment(paymentDetails); -  await libeufinCli.submitPayment(paymentDetails, "1"); - -  await libeufinCli.newTalerWireGatewayFacade({ -    accountName: bankAccountImportDetails.nexusBankAccountName, -    connectionName: "my-ebics-conn", -    currency: "EUR", -    facadeName: "my-twg", -  }); -  await libeufinCli.listFacades(); -} -runLibeufinTutorialTest.suites = ["libeufin"]; diff --git a/packages/taler-harness/src/integrationtests/test-payment-fault.ts b/packages/taler-harness/src/integrationtests/test-payment-fault.ts index e57427fac..ca74a4ad6 100644 --- a/packages/taler-harness/src/integrationtests/test-payment-fault.ts +++ b/packages/taler-harness/src/integrationtests/test-payment-fault.ts @@ -22,7 +22,7 @@   * Imports.   */  import { -  BankAccessApiClient, +  TalerCorebankApiClient,    CoreApiResponse,    MerchantApiClient,  } from "@gnu-taler/taler-util"; @@ -127,7 +127,7 @@ export async function runPaymentFaultTest(t: GlobalTestState) {    // Create withdrawal operation -  const bankClient = new BankAccessApiClient(bank.bankAccessApiBaseUrl); +  const bankClient = new TalerCorebankApiClient(bank.bankAccessApiBaseUrl);    const user = await bankClient.createRandomBankUser();    const wop = await bankClient.createWithdrawalOperation( diff --git a/packages/taler-harness/src/integrationtests/test-tipping.ts b/packages/taler-harness/src/integrationtests/test-tipping.ts index 4140311ab..3d4ea6663 100644 --- a/packages/taler-harness/src/integrationtests/test-tipping.ts +++ b/packages/taler-harness/src/integrationtests/test-tipping.ts @@ -18,7 +18,7 @@   * Imports.   */  import { -  BankAccessApiClient, +  TalerCorebankApiClient,    MerchantApiClient,    TransactionMajorState,    WireGatewayApiClient, @@ -38,7 +38,7 @@ export async function runTippingTest(t: GlobalTestState) {    const { walletClient, bank, exchange, merchant, exchangeBankAccount } =      await createSimpleTestkudosEnvironmentV2(t); -  const bankAccessApiClient = new BankAccessApiClient( +  const bankAccessApiClient = new TalerCorebankApiClient(      bank.bankAccessApiBaseUrl,    );    const mbu = await bankAccessApiClient.createRandomBankUser(); diff --git a/packages/taler-harness/src/integrationtests/test-wallet-notifications.ts b/packages/taler-harness/src/integrationtests/test-wallet-notifications.ts index 9a0eb77ae..ae582fe60 100644 --- a/packages/taler-harness/src/integrationtests/test-wallet-notifications.ts +++ b/packages/taler-harness/src/integrationtests/test-wallet-notifications.ts @@ -18,7 +18,7 @@   * Imports.   */  import { -  BankAccessApiClient, +  TalerCorebankApiClient,    Duration,    NotificationType,    TransactionMajorState, @@ -121,7 +121,7 @@ export async function runWalletNotificationsTest(t: GlobalTestState) {      skipDefaults: true,    }); -  const bankAccessApiClient = new BankAccessApiClient( +  const bankAccessApiClient = new TalerCorebankApiClient(      bank.bankAccessApiBaseUrl,    );    const user = await bankAccessApiClient.createRandomBankUser(); diff --git a/packages/taler-harness/src/integrationtests/test-withdrawal-abort-bank.ts b/packages/taler-harness/src/integrationtests/test-withdrawal-abort-bank.ts index aa5e2b770..4a0dd845b 100644 --- a/packages/taler-harness/src/integrationtests/test-withdrawal-abort-bank.ts +++ b/packages/taler-harness/src/integrationtests/test-withdrawal-abort-bank.ts @@ -17,7 +17,7 @@  /**   * Imports.   */ -import { BankAccessApiClient, TalerErrorCode } from "@gnu-taler/taler-util"; +import { TalerCorebankApiClient, TalerErrorCode } from "@gnu-taler/taler-util";  import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";  import { GlobalTestState } from "../harness/harness.js";  import { createSimpleTestkudosEnvironmentV2 } from "../harness/helpers.js"; @@ -33,7 +33,7 @@ export async function runWithdrawalAbortBankTest(t: GlobalTestState) {    // Create a withdrawal operation -  const bankAccessApiClient = new BankAccessApiClient( +  const bankAccessApiClient = new TalerCorebankApiClient(      bank.bankAccessApiBaseUrl,    );    const user = await bankAccessApiClient.createRandomBankUser(); diff --git a/packages/taler-harness/src/integrationtests/test-withdrawal-bank-integrated.ts b/packages/taler-harness/src/integrationtests/test-withdrawal-bank-integrated.ts index 232b6d7c2..4a2cc7df9 100644 --- a/packages/taler-harness/src/integrationtests/test-withdrawal-bank-integrated.ts +++ b/packages/taler-harness/src/integrationtests/test-withdrawal-bank-integrated.ts @@ -18,7 +18,7 @@   * Imports.   */  import { -  BankAccessApiClient, +  TalerCorebankApiClient,    j2s,    NotificationType,    TransactionMajorState, @@ -41,7 +41,7 @@ export async function runWithdrawalBankIntegratedTest(t: GlobalTestState) {    // Create a withdrawal operation -  const bankAccessApiClient = new BankAccessApiClient( +  const bankAccessApiClient = new TalerCorebankApiClient(      bank.bankAccessApiBaseUrl,    );    const user = await bankAccessApiClient.createRandomBankUser(); diff --git a/packages/taler-harness/src/integrationtests/test-withdrawal-fakebank.ts b/packages/taler-harness/src/integrationtests/test-withdrawal-fakebank.ts index ec6e54e6c..7cd0548a5 100644 --- a/packages/taler-harness/src/integrationtests/test-withdrawal-fakebank.ts +++ b/packages/taler-harness/src/integrationtests/test-withdrawal-fakebank.ts @@ -54,7 +54,10 @@ export async function runWithdrawalFakebankTest(t: GlobalTestState) {    exchange.addBankAccount("1", {      accountName: "exchange",      accountPassword: "x", -    wireGatewayApiBaseUrl: new URL("/exchange/", bank.baseUrl).href, +    wireGatewayApiBaseUrl: new URL( +      "/accounts/exchange/taler-wire-gateway", +      bank.baseUrl, +    ).href,      accountPaytoUri: "payto://x-taler-bank/localhost/exchange",    }); diff --git a/packages/taler-harness/src/integrationtests/test-withdrawal-fees.ts b/packages/taler-harness/src/integrationtests/test-withdrawal-fees.ts index bc2946a18..a5a5a0d99 100644 --- a/packages/taler-harness/src/integrationtests/test-withdrawal-fees.ts +++ b/packages/taler-harness/src/integrationtests/test-withdrawal-fees.ts @@ -17,7 +17,7 @@  /**   * Imports.   */ -import { BankAccessApiClient, j2s } from "@gnu-taler/taler-util"; +import { TalerCorebankApiClient, j2s } from "@gnu-taler/taler-util";  import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";  import { CoinConfig } from "../harness/denomStructures.js";  import { @@ -107,7 +107,7 @@ export async function runWithdrawalFeesTest(t: GlobalTestState) {    const amount = "TESTKUDOS:7.5"; -  const bankAccessApiClient = new BankAccessApiClient( +  const bankAccessApiClient = new TalerCorebankApiClient(      bank.bankAccessApiBaseUrl,    );    const user = await bankAccessApiClient.createRandomBankUser(); diff --git a/packages/taler-harness/src/integrationtests/test-withdrawal-manual.ts b/packages/taler-harness/src/integrationtests/test-withdrawal-manual.ts index 1d98cd46e..316e3cc18 100644 --- a/packages/taler-harness/src/integrationtests/test-withdrawal-manual.ts +++ b/packages/taler-harness/src/integrationtests/test-withdrawal-manual.ts @@ -19,7 +19,7 @@   */  import {    AbsoluteTime, -  BankAccessApiClient, +  TalerCorebankApiClient,    Logger,    WireGatewayApiClient,    j2s, @@ -41,7 +41,7 @@ export async function runWithdrawalManualTest(t: GlobalTestState) {    // Create a withdrawal operation -  const bankAccessApiClient = new BankAccessApiClient( +  const bankAccessApiClient = new TalerCorebankApiClient(      bank.bankAccessApiBaseUrl,    ); diff --git a/packages/taler-harness/src/integrationtests/testrunner.ts b/packages/taler-harness/src/integrationtests/testrunner.ts index 237d3bf9f..071871837 100644 --- a/packages/taler-harness/src/integrationtests/testrunner.ts +++ b/packages/taler-harness/src/integrationtests/testrunner.ts @@ -43,25 +43,6 @@ import { runExchangeTimetravelTest } from "./test-exchange-timetravel.js";  import { runFeeRegressionTest } from "./test-fee-regression.js";  import { runForcedSelectionTest } from "./test-forced-selection.js";  import { runKycTest } from "./test-kyc.js"; -import { runLibeufinApiBankaccountTest } from "./test-libeufin-api-bankaccount.js"; -import { runLibeufinApiBankconnectionTest } from "./test-libeufin-api-bankconnection.js"; -import { runLibeufinApiFacadeBadRequestTest } from "./test-libeufin-api-facade-bad-request.js"; -import { runLibeufinApiFacadeTest } from "./test-libeufin-api-facade.js"; -import { runLibeufinApiPermissionsTest } from "./test-libeufin-api-permissions.js"; -import { runLibeufinApiSandboxCamtTest } from "./test-libeufin-api-sandbox-camt.js"; -import { runLibeufinApiSandboxTransactionsTest } from "./test-libeufin-api-sandbox-transactions.js"; -import { runLibeufinApiSchedulingTest } from "./test-libeufin-api-scheduling.js"; -import { runLibeufinApiUsersTest } from "./test-libeufin-api-users.js"; -import { runLibeufinBadGatewayTest } from "./test-libeufin-bad-gateway.js"; -import { runLibeufinBasicTest } from "./test-libeufin-basic.js"; -import { runLibeufinC5xTest } from "./test-libeufin-c5x.js"; -import { runLibeufinAnastasisFacadeTest } from "./test-libeufin-facade-anastasis.js"; -import { runLibeufinKeyrotationTest } from "./test-libeufin-keyrotation.js"; -import { runLibeufinNexusBalanceTest } from "./test-libeufin-nexus-balance.js"; -import { runLibeufinRefundMultipleUsersTest } from "./test-libeufin-refund-multiple-users.js"; -import { runLibeufinRefundTest } from "./test-libeufin-refund.js"; -import { runLibeufinSandboxWireTransferCliTest } from "./test-libeufin-sandbox-wire-transfer-cli.js"; -import { runLibeufinTutorialTest } from "./test-libeufin-tutorial.js";  import { runMerchantExchangeConfusionTest } from "./test-merchant-exchange-confusion.js";  import { runMerchantInstancesDeleteTest } from "./test-merchant-instances-delete.js";  import { runMerchantInstancesUrlsTest } from "./test-merchant-instances-urls.js"; @@ -144,25 +125,6 @@ const allTests: TestMainFunction[] = [    runKycTest,    runExchangePurseTest,    runExchangeDepositTest, -  runLibeufinAnastasisFacadeTest, -  runLibeufinApiBankaccountTest, -  runLibeufinApiBankconnectionTest, -  runLibeufinApiFacadeBadRequestTest, -  runLibeufinApiFacadeTest, -  runLibeufinApiPermissionsTest, -  runLibeufinApiSandboxCamtTest, -  runLibeufinApiSandboxTransactionsTest, -  runLibeufinApiSchedulingTest, -  runLibeufinApiUsersTest, -  runLibeufinBadGatewayTest, -  runLibeufinBasicTest, -  runLibeufinC5xTest, -  runLibeufinKeyrotationTest, -  runLibeufinNexusBalanceTest, -  runLibeufinRefundMultipleUsersTest, -  runLibeufinRefundTest, -  runLibeufinSandboxWireTransferCliTest, -  runLibeufinTutorialTest,    runMerchantExchangeConfusionTest,    runMerchantInstancesDeleteTest,    runMerchantInstancesTest, | 
