@@ -5,6 +5,7 @@ import TransactionListItem from '@components/SelectionList/Search/TransactionLis
55import type {
66 ReportActionListItemType ,
77 TransactionCardGroupListItemType ,
8+ TransactionGroupListItemType ,
89 TransactionListItemType ,
910 TransactionMemberGroupListItemType ,
1011 TransactionReportGroupListItemType ,
@@ -1633,7 +1634,67 @@ describe('SearchUIUtils', () => {
16331634 } ) ;
16341635
16351636 it ( 'should return getTransactionsSections result when groupBy is undefined' , ( ) => {
1636- expect ( SearchUIUtils . getSections ( CONST . SEARCH . DATA_TYPES . EXPENSE , searchResults . data , 2074551 , formatPhoneNumber ) ) . toStrictEqual ( transactionsListItems ) ;
1637+ expect ( SearchUIUtils . getSections ( CONST . SEARCH . DATA_TYPES . EXPENSE , searchResults . data , 2074551 , formatPhoneNumber ) ) . toEqual ( transactionsListItems ) ;
1638+ } ) ;
1639+
1640+ it ( 'should include iouRequestType property for distance transactions' , ( ) => {
1641+ const distanceTransactionID = 'distance_transaction_123' ;
1642+ const testSearchResults = {
1643+ ...searchResults ,
1644+ data : {
1645+ ...searchResults . data ,
1646+ [ `transactions_${ distanceTransactionID } ` ] : {
1647+ ...searchResults . data [ `transactions_${ transactionID } ` ] ,
1648+ transactionID : distanceTransactionID ,
1649+ transactionType : CONST . SEARCH . TRANSACTION_TYPE . DISTANCE ,
1650+ iouRequestType : CONST . IOU . REQUEST_TYPE . DISTANCE ,
1651+ } ,
1652+ } ,
1653+ } ;
1654+
1655+ const result = SearchUIUtils . getSections ( CONST . SEARCH . DATA_TYPES . EXPENSE , testSearchResults . data , 2074551 , formatPhoneNumber ) as TransactionListItemType [ ] ;
1656+
1657+ const distanceTransaction = result . find ( ( item ) => item . transactionID === distanceTransactionID ) ;
1658+
1659+ expect ( distanceTransaction ) . toBeDefined ( ) ;
1660+ expect ( distanceTransaction ?. iouRequestType ) . toBe ( CONST . IOU . REQUEST_TYPE . DISTANCE ) ;
1661+
1662+ const expectedPropertyCount = 55 ;
1663+ expect ( Object . keys ( distanceTransaction ?? { } ) . length ) . toBe ( expectedPropertyCount ) ;
1664+ } ) ;
1665+
1666+ it ( 'should include iouRequestType property for distance transactions in grouped results' , ( ) => {
1667+ const distanceTransactionID = 'distance_transaction_grouped_123' ;
1668+ const testSearchResults = {
1669+ ...searchResults ,
1670+ data : {
1671+ ...searchResults . data ,
1672+ [ `transactions_${ distanceTransactionID } ` ] : {
1673+ ...searchResults . data [ `transactions_${ transactionID } ` ] ,
1674+ transactionID : distanceTransactionID ,
1675+ transactionType : CONST . SEARCH . TRANSACTION_TYPE . DISTANCE ,
1676+ iouRequestType : CONST . IOU . REQUEST_TYPE . DISTANCE ,
1677+ } ,
1678+ } ,
1679+ } ;
1680+
1681+ const result = SearchUIUtils . getSections (
1682+ CONST . SEARCH . DATA_TYPES . EXPENSE ,
1683+ testSearchResults . data ,
1684+ 2074551 ,
1685+ formatPhoneNumber ,
1686+ CONST . SEARCH . GROUP_BY . REPORTS ,
1687+ ) as TransactionGroupListItemType [ ] ;
1688+
1689+ const reportGroup = result . find ( ( group ) => group . transactions ?. some ( ( transaction ) => transaction . transactionID === distanceTransactionID ) ) ;
1690+
1691+ const distanceTransaction = reportGroup ?. transactions ?. find ( ( transaction ) => transaction . transactionID === distanceTransactionID ) ;
1692+
1693+ expect ( distanceTransaction ) . toBeDefined ( ) ;
1694+ expect ( distanceTransaction ?. iouRequestType ) . toBe ( CONST . IOU . REQUEST_TYPE . DISTANCE ) ;
1695+
1696+ const expectedPropertyCount = 55 ;
1697+ expect ( Object . keys ( distanceTransaction ?? { } ) . length ) . toBe ( expectedPropertyCount ) ;
16371698 } ) ;
16381699
16391700 it ( 'should return getReportSections result when type is EXPENSE and groupBy is report' , ( ) => {
0 commit comments