@@ -159,6 +159,7 @@ describe('getPrimaryAction', () => {
159159 parentReportID : CHAT_REPORT_ID ,
160160 statusNum : CONST . REPORT . STATUS_NUM . SUBMITTED ,
161161 stateNum : CONST . REPORT . STATE_NUM . SUBMITTED ,
162+ total : 7 ,
162163 } as unknown as Report ;
163164 const parentReport = {
164165 reportID : CHAT_REPORT_ID ,
@@ -180,6 +181,36 @@ describe('getPrimaryAction', () => {
180181 expect ( getReportPrimaryAction ( { report, chatReport, reportTransactions : [ transaction ] , violations : { } , policy, invoiceReceiverPolicy} ) ) . toBe ( CONST . REPORT . PRIMARY_ACTIONS . PAY ) ;
181182 } ) ;
182183
184+ it ( 'should not return PAY for zero value invoice report if paid as personal' , async ( ) => {
185+ const report = {
186+ reportID : REPORT_ID ,
187+ type : CONST . REPORT . TYPE . INVOICE ,
188+ ownerAccountID : INVOICE_SENDER_ACCOUNT_ID ,
189+ parentReportID : CHAT_REPORT_ID ,
190+ statusNum : CONST . REPORT . STATUS_NUM . SUBMITTED ,
191+ stateNum : CONST . REPORT . STATE_NUM . SUBMITTED ,
192+ total : 0 ,
193+ } as unknown as Report ;
194+ const parentReport = {
195+ reportID : CHAT_REPORT_ID ,
196+ invoiceReceiver : {
197+ type : CONST . REPORT . INVOICE_RECEIVER_TYPE . INDIVIDUAL ,
198+ accountID : CURRENT_USER_ACCOUNT_ID ,
199+ } ,
200+ } as unknown as Report ;
201+ await Onyx . merge ( `${ ONYXKEYS . COLLECTION . REPORT } ${ REPORT_ID } ` , report ) ;
202+ await Onyx . merge ( `${ ONYXKEYS . COLLECTION . REPORT } ${ CHAT_REPORT_ID } ` , parentReport ) ;
203+ const policy = { } as Policy ;
204+ const invoiceReceiverPolicy = {
205+ role : CONST . POLICY . ROLE . ADMIN ,
206+ } as Policy ;
207+ const transaction = {
208+ reportID : `${ REPORT_ID } ` ,
209+ } as unknown as Transaction ;
210+
211+ expect ( getReportPrimaryAction ( { report, chatReport, reportTransactions : [ transaction ] , violations : { } , policy, invoiceReceiverPolicy} ) ) . toBe ( '' ) ;
212+ } ) ;
213+
183214 it ( 'should return PAY for expense report with payments enabled' , async ( ) => {
184215 const report = {
185216 reportID : REPORT_ID ,
@@ -603,6 +634,7 @@ describe('getTransactionThreadPrimaryAction', () => {
603634 parentReportID : CHAT_REPORT_ID ,
604635 statusNum : CONST . REPORT . STATUS_NUM . SUBMITTED ,
605636 stateNum : CONST . REPORT . STATE_NUM . SUBMITTED ,
637+ total : 7 ,
606638 } as unknown as Report ;
607639 const parentReport = {
608640 reportID : CHAT_REPORT_ID ,
@@ -630,4 +662,41 @@ describe('getTransactionThreadPrimaryAction', () => {
630662 } ) ,
631663 ) . toBe ( CONST . REPORT . PRIMARY_ACTIONS . PAY ) ;
632664 } ) ;
665+
666+ it ( 'should not return PAY for zero value invoice report if paid as business and the payer is the policy admin' , async ( ) => {
667+ const report = {
668+ reportID : REPORT_ID ,
669+ type : CONST . REPORT . TYPE . INVOICE ,
670+ ownerAccountID : INVOICE_SENDER_ACCOUNT_ID ,
671+ parentReportID : CHAT_REPORT_ID ,
672+ statusNum : CONST . REPORT . STATUS_NUM . SUBMITTED ,
673+ stateNum : CONST . REPORT . STATE_NUM . SUBMITTED ,
674+ total : 0 ,
675+ } as unknown as Report ;
676+ const parentReport = {
677+ reportID : CHAT_REPORT_ID ,
678+ invoiceReceiver : {
679+ type : CONST . REPORT . INVOICE_RECEIVER_TYPE . BUSINESS ,
680+ policyID : POLICY_ID ,
681+ } ,
682+ } as unknown as Report ;
683+ await Onyx . merge ( `${ ONYXKEYS . COLLECTION . REPORT } ${ REPORT_ID } ` , report ) ;
684+ await Onyx . merge ( `${ ONYXKEYS . COLLECTION . REPORT } ${ CHAT_REPORT_ID } ` , parentReport ) ;
685+ const invoiceReceiverPolicy = {
686+ role : CONST . POLICY . ROLE . ADMIN ,
687+ } ;
688+ const transaction = {
689+ reportID : `${ REPORT_ID } ` ,
690+ } as unknown as Transaction ;
691+ expect (
692+ getReportPrimaryAction ( {
693+ report,
694+ chatReport,
695+ reportTransactions : [ transaction ] ,
696+ violations : { } ,
697+ policy : { } as Policy ,
698+ invoiceReceiverPolicy : invoiceReceiverPolicy as Policy ,
699+ } ) ,
700+ ) . toBe ( '' ) ;
701+ } ) ;
633702} ) ;
0 commit comments