summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorMS <ms@taler.net>2021-04-29 11:19:17 +0200
committerMS <ms@taler.net>2021-04-29 11:19:17 +0200
commit9928d2ef35bbc8dbbfd7b673b79bc6050740e686 (patch)
treebe909f9b08c0f6a5fecda51736f6ab810f4a6bee /packages
parentfaf83181de460f61f91655f0386f5b9f044489d3 (diff)
downloadwallet-core-9928d2ef35bbc8dbbfd7b673b79bc6050740e686.tar.gz
wallet-core-9928d2ef35bbc8dbbfd7b673b79bc6050740e686.tar.bz2
wallet-core-9928d2ef35bbc8dbbfd7b673b79bc6050740e686.zip
Libeufin Tests.
Testing refunds due to invalid subject. Up to the point where the list of transactions is returned by the local bank account.
Diffstat (limited to 'packages')
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/libeufin.ts37
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund.ts26
2 files changed, 57 insertions, 6 deletions
diff --git a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts b/packages/taler-wallet-cli/src/integrationtests/libeufin.ts
index ad906debf..cee0f79cb 100644
--- a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/libeufin.ts
@@ -39,8 +39,8 @@ export interface LibeufinNexusServiceInterface {
}
export interface LibeufinServices {
- libeufinSandbox: LibeufinSandboxServiceInterface;
- libeufinNexus: LibeufinNexusServiceInterface;
+ libeufinSandbox: LibeufinSandboxService;
+ libeufinNexus: LibeufinNexusService;
commonDb: DbInfo;
}
@@ -279,7 +279,7 @@ export interface SimulateIncomingTransactionRequest {
/**
* The bundle aims at minimizing the amount of input
* data that is required to initialize a new user + Ebics
- * connection thereof.
+ * connection.
*/
export class NexusUserBundle {
userReq: CreateNexusUserRequest;
@@ -651,7 +651,7 @@ export namespace LibeufinSandboxApi {
}
export async function bookPayment(
- libeufinSandboxService: LibeufinSandboxServiceInterface,
+ libeufinSandboxService: LibeufinSandboxService,
creditorBundle: SandboxUserBundle,
debitorBundle: SandboxUserBundle,
subject: string,
@@ -849,9 +849,34 @@ export namespace LibeufinNexusApi {
);
}
+ export async function getAccountTransactions(
+ libeufinNexusService: LibeufinNexusService,
+ accountName: string,
+ username: string = "admin",
+ password: string = "test",
+ ): Promise<void> {
+ const baseUrl = libeufinNexusService.baseUrl;
+ let url = new URL(
+ `/bank-accounts/${accountName}/transactions`,
+ baseUrl,
+ );
+ await axios.get(
+ url.href,
+ {
+ auth: {
+ username: username,
+ password: password,
+ },
+ },
+ );
+ }
+
+
export async function fetchAllTransactions(
libeufinNexusService: LibeufinNexusService,
accountName: string,
+ username: string = "admin",
+ password: string = "test",
): Promise<void> {
const baseUrl = libeufinNexusService.baseUrl;
let url = new URL(
@@ -866,8 +891,8 @@ export namespace LibeufinNexusApi {
},
{
auth: {
- username: "admin",
- password: "test",
+ username: username,
+ password: password,
},
},
);
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 0adabbf4e..dc5a14c88 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund.ts
@@ -23,6 +23,7 @@ import {
NexusUserBundle,
launchLibeufinServices,
LibeufinSandboxApi,
+ LibeufinNexusApi,
} from "./libeufin";
/**
@@ -46,6 +47,10 @@ export async function runLibeufinRefundTest(t: GlobalTestState) {
[user01sandbox, user02sandbox],
);
+ // user02 - acting as the Exchange - gets money from user01,
+ // but this one gets the subject wrong - not a valid public key.
+ // The result should be a reimbursement - minus a small fee - of
+ // the paid money to user01.
await LibeufinSandboxApi.bookPayment(
libeufinServices.libeufinSandbox,
user02sandbox,
@@ -54,4 +59,25 @@ export async function runLibeufinRefundTest(t: GlobalTestState) {
"1",
"EUR",
);
+
+ // STEPS.
+
+ // 1. Exchange must import this payment into its Nexus / Facade.
+ // 2. Facade logic should process incoming payments.
+ // 3. A reimbursement should be prepared.
+ // 4. The reimbursement payment should be sent.
+
+ // Steps 1-3 should happen all-at-once when triggering the import
+ // logic. 4 needs to be explicitly triggered (because here there's
+ // no background task activated, yet?)
+
+ await LibeufinNexusApi.fetchAllTransactions(
+ libeufinServices.libeufinNexus,
+ user02nexus.localAccountName,
+ );
+
+ await LibeufinNexusApi.getAccountTransactions(
+ libeufinServices.libeufinNexus,
+ user02nexus.localAccountName,
+ );
}