aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-cli/src
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/taler-wallet-cli/src
parentfaf83181de460f61f91655f0386f5b9f044489d3 (diff)
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/taler-wallet-cli/src')
-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,
+ );
}