Testing: done with simple refund case.
This commit is contained in:
parent
98014f4b64
commit
eaa5aba4e2
@ -784,6 +784,28 @@ export namespace LibeufinNexusApi {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function submitInitiatedPayment(
|
||||||
|
libeufinNexusService: LibeufinNexusServiceInterface,
|
||||||
|
accountName: string,
|
||||||
|
paymentId: string,
|
||||||
|
): Promise<void> {
|
||||||
|
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(
|
export async function fetchAccounts(
|
||||||
libeufinNexusService: LibeufinNexusServiceInterface,
|
libeufinNexusService: LibeufinNexusServiceInterface,
|
||||||
connectionName: string,
|
connectionName: string,
|
||||||
@ -874,6 +896,8 @@ export namespace LibeufinNexusApi {
|
|||||||
JSON.stringify(response.data, null, 2));
|
JSON.stringify(response.data, null, 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FIXME: this function should return some structured
|
||||||
|
// object that represents a history.
|
||||||
export async function getAccountTransactions(
|
export async function getAccountTransactions(
|
||||||
libeufinNexusService: LibeufinNexusService,
|
libeufinNexusService: LibeufinNexusService,
|
||||||
accountName: string,
|
accountName: string,
|
||||||
@ -894,8 +918,6 @@ export namespace LibeufinNexusApi {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
console.log(`History of account: ${accountName}`,
|
|
||||||
JSON.stringify(response.data, null, 2));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -47,10 +47,11 @@ export async function runLibeufinRefundTest(t: GlobalTestState) {
|
|||||||
[user01sandbox, user02sandbox],
|
[user01sandbox, user02sandbox],
|
||||||
);
|
);
|
||||||
|
|
||||||
// user02 - acting as the Exchange - gets money from user01,
|
/**
|
||||||
// but this one gets the subject wrong - not a valid public key.
|
* user01 pays user02 using a invalid subject. At the end,
|
||||||
// The result should be a reimbursement - minus a small fee - of
|
* user01 checks whether one incoming payment exists in the
|
||||||
// the paid money to user01.
|
* history. This one incoming payment will be the refund.
|
||||||
|
*/
|
||||||
await LibeufinSandboxApi.bookPayment(
|
await LibeufinSandboxApi.bookPayment(
|
||||||
libeufinServices.libeufinSandbox,
|
libeufinServices.libeufinSandbox,
|
||||||
user02sandbox,
|
user02sandbox,
|
||||||
@ -60,24 +61,22 @@ export async function runLibeufinRefundTest(t: GlobalTestState) {
|
|||||||
"EUR",
|
"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(
|
await LibeufinNexusApi.fetchAllTransactions(
|
||||||
libeufinServices.libeufinNexus,
|
libeufinServices.libeufinNexus,
|
||||||
user02nexus.localAccountName,
|
user02nexus.localAccountName,
|
||||||
);
|
);
|
||||||
|
|
||||||
await LibeufinNexusApi.getAccountTransactions(
|
await LibeufinNexusApi.submitInitiatedPayment(
|
||||||
libeufinServices.libeufinNexus,
|
libeufinServices.libeufinNexus,
|
||||||
user02nexus.localAccountName,
|
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)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user