gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-merchant-backoffice] branch master updated: test history paginati


From: gnunet
Subject: [taler-merchant-backoffice] branch master updated: test history pagination
Date: Tue, 11 Jan 2022 18:27:19 +0100

This is an automated email from the git hooks/post-receive script.

ms pushed a commit to branch master
in repository merchant-backoffice.

The following commit(s) were added to refs/heads/master by this push:
     new 9e2b0a4  test history pagination
9e2b0a4 is described below

commit 9e2b0a454e46e5acbf1fc5a92dafd8eaf287c517
Author: ms <ms@taler.net>
AuthorDate: Tue Jan 11 18:26:43 2022 +0100

    test history pagination
---
 packages/bank/src/pages/home/index.tsx    | 17 +++++++++++---
 packages/bank/tests/__tests__/homepage.js | 38 +++++++++++++++++++++++++++++++
 2 files changed, 52 insertions(+), 3 deletions(-)

diff --git a/packages/bank/src/pages/home/index.tsx 
b/packages/bank/src/pages/home/index.tsx
index 166579b..791068c 100644
--- a/packages/bank/src/pages/home/index.tsx
+++ b/packages/bank/src/pages/home/index.tsx
@@ -488,7 +488,7 @@ async function registrationCall(
  *************************/
 
 /**
- * Show list of transactions.
+ * Show one page of transactions.
  */
 function Transactions(Props: any): VNode {
 
@@ -513,7 +513,18 @@ function Transactions(Props: any): VNode {
   var txsPages = <p>"loading..."</p>
 
   if (data) {
-    txsPages = data.map((item: any) => <div>Result</div>)
+    console.log("History data", data);
+    txsPages = <div>{
+      data.transactions.map(function(item: any) {
+       const sign = item.direction == "DBIT" ? "-" : "";
+       const counterpart = item.direction == "DBIT" ? item.creditorIban : 
item.debtorIban;
+        const amount = item.amount.split(":") // assume well-formed.
+       // Pattern:
+       //
+       // DD-MM-YYYY subject -5 EUR
+       // DD-MM-YYYY subject 5 EUR
+        return <span>{item.date} {item.subject} {sign}{amount[1]} 
{amount[0]}</span>
+    })}</div>
   }
   return txsPages;
 }
@@ -530,7 +541,7 @@ function Account(Props: any): VNode {
    * This part shows a list of transactions: with 5 elements by
    * default and offers a "load more" button.
    */
-  var [txPageNumber, setTxPageNumber] = useTransactionPageNumber() // Buggy.
+  var [txPageNumber, setTxPageNumber] = useTransactionPageNumber()
   var txsPages = []
   for (let i = 0; i <= txPageNumber; i++) {
     txsPages.push(<Transactions accountLabel={Props.accountLabel} 
pageNumber={txPageNumber} />)
diff --git a/packages/bank/tests/__tests__/homepage.js 
b/packages/bank/tests/__tests__/homepage.js
index 65661a3..71d300e 100644
--- a/packages/bank/tests/__tests__/homepage.js
+++ b/packages/bank/tests/__tests__/homepage.js
@@ -237,15 +237,46 @@ describe("home page", () => {
     fireEvent.click(signinButton);
     await screen.findByText("wrong credentials given", {exact: false})
   })
+
+  /**
+   * Test that balance and last transactions get shown
+   * after a successful login.
+   */
   test("login success", async () => {
     render(<BankHome />);
     const { username, signinButton } = fillCredentialsForm();
+    
+    // Response to balance request.
     fetch.once(JSON.stringify({
       balance: {
         amount: "EUR:10",
        credit_debit_indicator: "credit"
       },
       paytoUri: "payto://iban/123/ABC"
+    })).once(JSON.stringify({ // Response to history request.
+      transactions: [{
+        debtorIban: "XXX",
+        debtorBic: "YYY",
+        debtorName: "Foo",
+        creditorIban: "AAA",
+        creditorBic: "BBB",
+        creditorName: "Bar",
+       direction: "DBIT",
+        amount: "EUR:5",
+       subject: "Donation",
+       date: "01-01-1970"
+      }, {
+        debtorIban: "XXX",
+        debtorBic: "YYY",
+        debtorName: "Foo",
+        creditorIban: "AAA",
+        creditorBic: "BBB",
+        creditorName: "Bar",
+       direction: "CRDT",
+        amount: "EUR:5",
+       subject: "Refund",
+       date: "01-01-2000"
+      }]
     }))
     fireEvent.click(signinButton);
     expect(fetch).toHaveBeenCalledWith(
@@ -253,6 +284,13 @@ describe("home page", () => {
       expect.anything()
     )
     await screen.findByText("balance is EUR:10", {exact: false})
+    // The two transactions in the history mocked above.
+    await screen.findByText("refund", {exact: false})
+    await screen.findByText("donation", {exact: false})
+    expect(fetch).toHaveBeenCalledWith(
+      
`http://localhost/demobanks/default/access-api/accounts/${username}/transactions?page=0`,
+      expect.anything()
+    )
   })
 
   test("registration success", async () => {

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]