@@ -7751,6 +7751,96 @@ describe('SearchUIUtils', () => {
77517751 const response = SearchUIUtils . getSuggestedSearchesVisibility ( regularEmail , { } , policies , undefined ) ;
77527752 expect ( response . visibility . topSpenders ) . toBe ( false ) ;
77537753 } ) ;
7754+
7755+ test ( 'Should show Unapproved Cash for Auditor role in paid policy with approvals and payments enabled' , ( ) => {
7756+ const auditorEmail = 'auditor@policy.com' ;
7757+ const policyKey = `policy_${ policyID } ` ;
7758+
7759+ const policies : OnyxCollection < OnyxTypes . Policy > = {
7760+ [ policyKey ] : {
7761+ id : policyID ,
7762+ type : CONST . POLICY . TYPE . TEAM ,
7763+ role : CONST . POLICY . ROLE . AUDITOR ,
7764+ approvalMode : CONST . POLICY . APPROVAL_MODE . ADVANCED ,
7765+ } as OnyxTypes . Policy ,
7766+ } ;
7767+
7768+ const response = SearchUIUtils . getSuggestedSearchesVisibility ( auditorEmail , { } , policies , undefined ) ;
7769+ expect ( response . visibility . unapprovedCash ) . toBe ( true ) ;
7770+ } ) ;
7771+
7772+ test ( 'Should show Unapproved Card for Auditor role in paid policy with approvals enabled and a default Expensify card' , ( ) => {
7773+ const auditorEmail = 'auditor@policy.com' ;
7774+ const policyKey = `policy_${ policyID } ` ;
7775+
7776+ const policies : OnyxCollection < OnyxTypes . Policy > = {
7777+ [ policyKey ] : {
7778+ id : policyID ,
7779+ type : CONST . POLICY . TYPE . TEAM ,
7780+ role : CONST . POLICY . ROLE . AUDITOR ,
7781+ approvalMode : CONST . POLICY . APPROVAL_MODE . ADVANCED ,
7782+ } as OnyxTypes . Policy ,
7783+ } ;
7784+
7785+ const response = SearchUIUtils . getSuggestedSearchesVisibility ( auditorEmail , { } , policies , { } as CardFeedForDisplay ) ;
7786+ expect ( response . visibility . unapprovedCard ) . toBe ( true ) ;
7787+ } ) ;
7788+
7789+ test ( 'Should show Reconciliation for Auditor role in paid policy with Expensify Cards enabled' , ( ) => {
7790+ const auditorEmail = 'auditor@policy.com' ;
7791+ const policyKey = `policy_${ policyID } ` ;
7792+
7793+ const policies : OnyxCollection < OnyxTypes . Policy > = {
7794+ [ policyKey ] : {
7795+ id : policyID ,
7796+ type : CONST . POLICY . TYPE . TEAM ,
7797+ role : CONST . POLICY . ROLE . AUDITOR ,
7798+ areExpensifyCardsEnabled : true ,
7799+ } as OnyxTypes . Policy ,
7800+ } ;
7801+
7802+ const response = SearchUIUtils . getSuggestedSearchesVisibility ( auditorEmail , { } , policies , undefined ) ;
7803+ expect ( response . visibility . reconciliation ) . toBe ( true ) ;
7804+ } ) ;
7805+
7806+ test ( 'Should hide Unapproved Cash, Unapproved Card, and Reconciliation for User role even when prerequisites are met' , ( ) => {
7807+ const userEmail = 'user@policy.com' ;
7808+ const policyKey = `policy_${ policyID } ` ;
7809+
7810+ const policies : OnyxCollection < OnyxTypes . Policy > = {
7811+ [ policyKey ] : {
7812+ id : policyID ,
7813+ type : CONST . POLICY . TYPE . TEAM ,
7814+ role : CONST . POLICY . ROLE . USER ,
7815+ approvalMode : CONST . POLICY . APPROVAL_MODE . ADVANCED ,
7816+ areExpensifyCardsEnabled : true ,
7817+ } as OnyxTypes . Policy ,
7818+ } ;
7819+
7820+ const response = SearchUIUtils . getSuggestedSearchesVisibility ( userEmail , { } , policies , { } as CardFeedForDisplay ) ;
7821+ expect ( response . visibility . unapprovedCash ) . toBe ( false ) ;
7822+ expect ( response . visibility . unapprovedCard ) . toBe ( false ) ;
7823+ expect ( response . visibility . reconciliation ) . toBe ( false ) ;
7824+ } ) ;
7825+
7826+ test ( 'Should still show Unapproved Cash, Unapproved Card, and Reconciliation for Admin role when prerequisites are met (regression)' , ( ) => {
7827+ const policyKey = `policy_${ policyID } ` ;
7828+
7829+ const policies : OnyxCollection < OnyxTypes . Policy > = {
7830+ [ policyKey ] : {
7831+ id : policyID ,
7832+ type : CONST . POLICY . TYPE . TEAM ,
7833+ role : CONST . POLICY . ROLE . ADMIN ,
7834+ approvalMode : CONST . POLICY . APPROVAL_MODE . ADVANCED ,
7835+ areExpensifyCardsEnabled : true ,
7836+ } as OnyxTypes . Policy ,
7837+ } ;
7838+
7839+ const response = SearchUIUtils . getSuggestedSearchesVisibility ( adminEmail , { } , policies , { } as CardFeedForDisplay ) ;
7840+ expect ( response . visibility . unapprovedCash ) . toBe ( true ) ;
7841+ expect ( response . visibility . unapprovedCard ) . toBe ( true ) ;
7842+ expect ( response . visibility . reconciliation ) . toBe ( true ) ;
7843+ } ) ;
77547844 } ) ;
77557845
77567846 describe ( 'Test getSuggestedSearches sort defaults' , ( ) => {
0 commit comments