@@ -7769,6 +7769,96 @@ describe('SearchUIUtils', () => {
77697769 const response = SearchUIUtils . getSuggestedSearchesVisibility ( regularEmail , { } , policies , undefined ) ;
77707770 expect ( response . visibility . topSpenders ) . toBe ( false ) ;
77717771 } ) ;
7772+
7773+ test ( 'Should show Unapproved Cash for Auditor role in paid policy with approvals and payments enabled' , ( ) => {
7774+ const auditorEmail = 'auditor@policy.com' ;
7775+ const policyKey = `policy_${ policyID } ` ;
7776+
7777+ const policies : OnyxCollection < OnyxTypes . Policy > = {
7778+ [ policyKey ] : {
7779+ id : policyID ,
7780+ type : CONST . POLICY . TYPE . TEAM ,
7781+ role : CONST . POLICY . ROLE . AUDITOR ,
7782+ approvalMode : CONST . POLICY . APPROVAL_MODE . ADVANCED ,
7783+ } as OnyxTypes . Policy ,
7784+ } ;
7785+
7786+ const response = SearchUIUtils . getSuggestedSearchesVisibility ( auditorEmail , { } , policies , undefined ) ;
7787+ expect ( response . visibility . unapprovedCash ) . toBe ( true ) ;
7788+ } ) ;
7789+
7790+ test ( 'Should show Unapproved Card for Auditor role in paid policy with approvals enabled and a default Expensify card' , ( ) => {
7791+ const auditorEmail = 'auditor@policy.com' ;
7792+ const policyKey = `policy_${ policyID } ` ;
7793+
7794+ const policies : OnyxCollection < OnyxTypes . Policy > = {
7795+ [ policyKey ] : {
7796+ id : policyID ,
7797+ type : CONST . POLICY . TYPE . TEAM ,
7798+ role : CONST . POLICY . ROLE . AUDITOR ,
7799+ approvalMode : CONST . POLICY . APPROVAL_MODE . ADVANCED ,
7800+ } as OnyxTypes . Policy ,
7801+ } ;
7802+
7803+ const response = SearchUIUtils . getSuggestedSearchesVisibility ( auditorEmail , { } , policies , { } as CardFeedForDisplay ) ;
7804+ expect ( response . visibility . unapprovedCard ) . toBe ( true ) ;
7805+ } ) ;
7806+
7807+ test ( 'Should show Reconciliation for Auditor role in paid policy with Expensify Cards enabled' , ( ) => {
7808+ const auditorEmail = 'auditor@policy.com' ;
7809+ const policyKey = `policy_${ policyID } ` ;
7810+
7811+ const policies : OnyxCollection < OnyxTypes . Policy > = {
7812+ [ policyKey ] : {
7813+ id : policyID ,
7814+ type : CONST . POLICY . TYPE . TEAM ,
7815+ role : CONST . POLICY . ROLE . AUDITOR ,
7816+ areExpensifyCardsEnabled : true ,
7817+ } as OnyxTypes . Policy ,
7818+ } ;
7819+
7820+ const response = SearchUIUtils . getSuggestedSearchesVisibility ( auditorEmail , { } , policies , undefined ) ;
7821+ expect ( response . visibility . reconciliation ) . toBe ( true ) ;
7822+ } ) ;
7823+
7824+ test ( 'Should hide Unapproved Cash, Unapproved Card, and Reconciliation for User role even when prerequisites are met' , ( ) => {
7825+ const userEmail = 'user@policy.com' ;
7826+ const policyKey = `policy_${ policyID } ` ;
7827+
7828+ const policies : OnyxCollection < OnyxTypes . Policy > = {
7829+ [ policyKey ] : {
7830+ id : policyID ,
7831+ type : CONST . POLICY . TYPE . TEAM ,
7832+ role : CONST . POLICY . ROLE . USER ,
7833+ approvalMode : CONST . POLICY . APPROVAL_MODE . ADVANCED ,
7834+ areExpensifyCardsEnabled : true ,
7835+ } as OnyxTypes . Policy ,
7836+ } ;
7837+
7838+ const response = SearchUIUtils . getSuggestedSearchesVisibility ( userEmail , { } , policies , { } as CardFeedForDisplay ) ;
7839+ expect ( response . visibility . unapprovedCash ) . toBe ( false ) ;
7840+ expect ( response . visibility . unapprovedCard ) . toBe ( false ) ;
7841+ expect ( response . visibility . reconciliation ) . toBe ( false ) ;
7842+ } ) ;
7843+
7844+ test ( 'Should still show Unapproved Cash, Unapproved Card, and Reconciliation for Admin role when prerequisites are met (regression)' , ( ) => {
7845+ const policyKey = `policy_${ policyID } ` ;
7846+
7847+ const policies : OnyxCollection < OnyxTypes . Policy > = {
7848+ [ policyKey ] : {
7849+ id : policyID ,
7850+ type : CONST . POLICY . TYPE . TEAM ,
7851+ role : CONST . POLICY . ROLE . ADMIN ,
7852+ approvalMode : CONST . POLICY . APPROVAL_MODE . ADVANCED ,
7853+ areExpensifyCardsEnabled : true ,
7854+ } as OnyxTypes . Policy ,
7855+ } ;
7856+
7857+ const response = SearchUIUtils . getSuggestedSearchesVisibility ( adminEmail , { } , policies , { } as CardFeedForDisplay ) ;
7858+ expect ( response . visibility . unapprovedCash ) . toBe ( true ) ;
7859+ expect ( response . visibility . unapprovedCard ) . toBe ( true ) ;
7860+ expect ( response . visibility . reconciliation ) . toBe ( true ) ;
7861+ } ) ;
77727862 } ) ;
77737863
77747864 describe ( 'Test getSuggestedSearches sort defaults' , ( ) => {
0 commit comments