diff --git a/src/libs/MoneyRequestReportUtils.ts b/src/libs/MoneyRequestReportUtils.ts index d13346df710be..264ecb724d63d 100644 --- a/src/libs/MoneyRequestReportUtils.ts +++ b/src/libs/MoneyRequestReportUtils.ts @@ -4,6 +4,7 @@ import type {TransactionListItemType} from '@components/SelectionListWithSection import CONST from '@src/CONST'; import type {OriginalMessageIOU, Policy, Report, ReportAction, ReportMetadata, Transaction} from '@src/types/onyx'; import {convertToDisplayString} from './CurrencyUtils'; +import {isPaidGroupPolicy} from './PolicyUtils'; import {getIOUActionForTransactionID, getOriginalMessage, isDeletedAction, isDeletedParentAction, isMoneyRequestAction} from './ReportActionsUtils'; import { getMoneyRequestSpendBreakdown, @@ -19,7 +20,7 @@ import { import {getReimbursable, isTransactionPendingDelete} from './TransactionUtils'; function isBillableEnabledOnPolicy(policy: Policy | OnyxEntry | undefined): boolean { - return !!policy && policy.disabledFields?.defaultBillable !== true; + return !!policy && isPaidGroupPolicy(policy) && policy.disabledFields?.defaultBillable !== true; } function hasNonReimbursableTransactions(transactions: Transaction[]): boolean { diff --git a/tests/unit/MoneyRequestReportUtilsTest.ts b/tests/unit/MoneyRequestReportUtilsTest.ts index 347d794c48226..3e33207dbc16b 100644 --- a/tests/unit/MoneyRequestReportUtilsTest.ts +++ b/tests/unit/MoneyRequestReportUtilsTest.ts @@ -149,13 +149,23 @@ describe('MoneyRequestReportUtils', () => { expect(isBillableEnabledOnPolicy(undefined)).toBe(false); }); - test('returns true when defaultBillable is not disabled', () => { - const policy = {disabledFields: {defaultBillable: false}} as unknown as Policy; + test('returns true when policy is paid group and defaultBillable is enabled', () => { + const policy = {type: CONST.POLICY.TYPE.TEAM, disabledFields: {defaultBillable: false}} as unknown as Policy; expect(isBillableEnabledOnPolicy(policy)).toBe(true); }); - test('returns false when defaultBillable is disabled', () => { - const policy = {disabledFields: {defaultBillable: true}} as unknown as Policy; + test('returns true when policy is paid group and defaultBillable is missing', () => { + const policy = {type: CONST.POLICY.TYPE.CORPORATE, disabledFields: {}} as unknown as Policy; + expect(isBillableEnabledOnPolicy(policy)).toBe(true); + }); + + test('returns false when policy is paid group and defaultBillable is disabled', () => { + const policy = {type: CONST.POLICY.TYPE.TEAM, disabledFields: {defaultBillable: true}} as unknown as Policy; + expect(isBillableEnabledOnPolicy(policy)).toBe(false); + }); + + test('returns false when policy is non-paid group', () => { + const policy = {type: CONST.POLICY.TYPE.PERSONAL, disabledFields: {defaultBillable: false}} as unknown as Policy; expect(isBillableEnabledOnPolicy(policy)).toBe(false); }); });