From eaa5aba4e21dbf86a27860575f8f22a80993e0f3 Mon Sep 17 00:00:00 2001 From: MS Date: Fri, 30 Apr 2021 11:45:47 +0200 Subject: Testing: done with simple refund case. --- .../src/integrationtests/libeufin.ts | 26 +++++++++++++++-- .../src/integrationtests/test-libeufin-refund.ts | 33 +++++++++++----------- 2 files changed, 40 insertions(+), 19 deletions(-) (limited to 'packages/taler-wallet-cli/src') diff --git a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts b/packages/taler-wallet-cli/src/integrationtests/libeufin.ts index a60127191..480dadbe5 100644 --- a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts +++ b/packages/taler-wallet-cli/src/integrationtests/libeufin.ts @@ -784,6 +784,28 @@ export namespace LibeufinNexusApi { ); } + export async function submitInitiatedPayment( + libeufinNexusService: LibeufinNexusServiceInterface, + accountName: string, + paymentId: string, + ): Promise { + const baseUrl = libeufinNexusService.baseUrl; + let url = new URL( + `bank-accounts/${accountName}/payment-initiations/${paymentId}/submit`, + baseUrl, + ); + await axios.post( + url.href, + {}, + { + auth: { + username: "admin", + password: "test", + }, + }, + ); + } + export async function fetchAccounts( libeufinNexusService: LibeufinNexusServiceInterface, connectionName: string, @@ -874,6 +896,8 @@ export namespace LibeufinNexusApi { JSON.stringify(response.data, null, 2)); } + // FIXME: this function should return some structured + // object that represents a history. export async function getAccountTransactions( libeufinNexusService: LibeufinNexusService, accountName: string, @@ -894,8 +918,6 @@ export namespace LibeufinNexusApi { }, }, ); - console.log(`History of account: ${accountName}`, - JSON.stringify(response.data, null, 2)); } 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 e7233421d..a0e94fe5a 100644 --- a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund.ts +++ b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-refund.ts @@ -47,10 +47,11 @@ 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. + /** + * user01 pays user02 using a invalid subject. At the end, + * user01 checks whether one incoming payment exists in the + * history. This one incoming payment will be the refund. + */ await LibeufinSandboxApi.bookPayment( libeufinServices.libeufinSandbox, user02sandbox, @@ -60,24 +61,22 @@ export async function runLibeufinRefundTest(t: GlobalTestState) { "EUR", ); - // STEPS. - - // 1. Exchange must fetch 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( + + await LibeufinNexusApi.submitInitiatedPayment( libeufinServices.libeufinNexus, user02nexus.localAccountName, + "1", // so far the only one that can exist. + ); + + // Counterpart checks whether the reimbursement shows up. + let history = await LibeufinSandboxApi.getAccountTransactions( + libeufinServices.libeufinSandbox, + "remote-account-01" ); + + t.assertTrue(history["payments"].length == 1) } -- cgit v1.2.3