@@ -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 ,
@@ -1653,7 +1654,67 @@ describe('SearchUIUtils', () => {
16531654 } ) ;
16541655
16551656 it ( 'should return getTransactionsSections result when groupBy is undefined' , ( ) => {
1656- expect ( SearchUIUtils . getSections ( CONST . SEARCH . DATA_TYPES . EXPENSE , searchResults . data , 2074551 , formatPhoneNumber ) ) . toStrictEqual ( transactionsListItems ) ;
1657+ expect ( SearchUIUtils . getSections ( CONST . SEARCH . DATA_TYPES . EXPENSE , searchResults . data , 2074551 , formatPhoneNumber ) ) . toEqual ( transactionsListItems ) ;
1658+ } ) ;
1659+
1660+ it ( 'should include iouRequestType property for distance transactions' , ( ) => {
1661+ const distanceTransactionID = 'distance_transaction_123' ;
1662+ const testSearchResults = {
1663+ ...searchResults ,
1664+ data : {
1665+ ...searchResults . data ,
1666+ [ `transactions_${ distanceTransactionID } ` ] : {
1667+ ...searchResults . data [ `transactions_${ transactionID } ` ] ,
1668+ transactionID : distanceTransactionID ,
1669+ transactionType : CONST . SEARCH . TRANSACTION_TYPE . DISTANCE ,
1670+ iouRequestType : CONST . IOU . REQUEST_TYPE . DISTANCE ,
1671+ } ,
1672+ } ,
1673+ } ;
1674+
1675+ const result = SearchUIUtils . getSections ( CONST . SEARCH . DATA_TYPES . EXPENSE , testSearchResults . data , 2074551 , formatPhoneNumber ) as TransactionListItemType [ ] ;
1676+
1677+ const distanceTransaction = result . find ( ( item ) => item . transactionID === distanceTransactionID ) ;
1678+
1679+ expect ( distanceTransaction ) . toBeDefined ( ) ;
1680+ expect ( distanceTransaction ?. iouRequestType ) . toBe ( CONST . IOU . REQUEST_TYPE . DISTANCE ) ;
1681+
1682+ const expectedPropertyCount = 55 ;
1683+ expect ( Object . keys ( distanceTransaction ?? { } ) . length ) . toBe ( expectedPropertyCount ) ;
1684+ } ) ;
1685+
1686+ it ( 'should include iouRequestType property for distance transactions in grouped results' , ( ) => {
1687+ const distanceTransactionID = 'distance_transaction_grouped_123' ;
1688+ const testSearchResults = {
1689+ ...searchResults ,
1690+ data : {
1691+ ...searchResults . data ,
1692+ [ `transactions_${ distanceTransactionID } ` ] : {
1693+ ...searchResults . data [ `transactions_${ transactionID } ` ] ,
1694+ transactionID : distanceTransactionID ,
1695+ transactionType : CONST . SEARCH . TRANSACTION_TYPE . DISTANCE ,
1696+ iouRequestType : CONST . IOU . REQUEST_TYPE . DISTANCE ,
1697+ } ,
1698+ } ,
1699+ } ;
1700+
1701+ const result = SearchUIUtils . getSections (
1702+ CONST . SEARCH . DATA_TYPES . EXPENSE ,
1703+ testSearchResults . data ,
1704+ 2074551 ,
1705+ formatPhoneNumber ,
1706+ CONST . SEARCH . GROUP_BY . REPORTS ,
1707+ ) as TransactionGroupListItemType [ ] ;
1708+
1709+ const reportGroup = result . find ( ( group ) => group . transactions ?. some ( ( transaction ) => transaction . transactionID === distanceTransactionID ) ) ;
1710+
1711+ const distanceTransaction = reportGroup ?. transactions ?. find ( ( transaction ) => transaction . transactionID === distanceTransactionID ) ;
1712+
1713+ expect ( distanceTransaction ) . toBeDefined ( ) ;
1714+ expect ( distanceTransaction ?. iouRequestType ) . toBe ( CONST . IOU . REQUEST_TYPE . DISTANCE ) ;
1715+
1716+ const expectedPropertyCount = 55 ;
1717+ expect ( Object . keys ( distanceTransaction ?? { } ) . length ) . toBe ( expectedPropertyCount ) ;
16571718 } ) ;
16581719
16591720 it ( 'should return getReportSections result when type is EXPENSE and groupBy is report' , ( ) => {
0 commit comments