diff --git a/src/CONST/index.ts b/src/CONST/index.ts index 2b71d007b843..1c26a713d0be 100755 --- a/src/CONST/index.ts +++ b/src/CONST/index.ts @@ -1139,7 +1139,6 @@ const CONST = { REMOVE_HOLD: 'removeHold', REVIEW_DUPLICATES: 'reviewDuplicates', MARK_AS_CASH: 'markAsCash', - MARK_AS_RESOLVED: 'markAsResolved', }, TRANSACTION_PRIMARY_ACTIONS: { REMOVE_HOLD: 'removeHold', diff --git a/src/libs/ReportPrimaryActionUtils.ts b/src/libs/ReportPrimaryActionUtils.ts index 10a3907e132d..be0b472068ad 100644 --- a/src/libs/ReportPrimaryActionUtils.ts +++ b/src/libs/ReportPrimaryActionUtils.ts @@ -41,7 +41,6 @@ import { import {getSession} from './SessionUtils'; import { allHavePendingRTERViolation, - getTransactionViolations, hasPendingRTERViolation as hasPendingRTERViolationTransactionUtils, isDuplicate, isOnHold as isOnHoldTransactionUtils, @@ -314,16 +313,6 @@ function isMarkAsResolvedAction(report?: Report, violations?: TransactionViolati return violations?.some((violation) => violation.name === CONST.VIOLATIONS.AUTO_REPORTED_REJECTED_EXPENSE); } -function isPrimaryMarkAsResolvedAction(report?: Report, reportTransactions?: Transaction[], violations?: OnyxCollection, policy?: Policy) { - if (!reportTransactions || reportTransactions.length !== 1) { - return false; - } - - const transactionViolations = getTransactionViolations(reportTransactions.at(0), violations); - - return isExpenseReportUtils(report) && isMarkAsResolvedAction(report, transactionViolations, policy); -} - function getAllExpensesToHoldIfApplicable(report?: Report, reportActions?: ReportAction[]) { if (!report || !reportActions || !hasOnlyHeldExpenses(report?.reportID)) { return []; @@ -379,10 +368,6 @@ function getReportPrimaryAction(params: GetReportPrimaryActionParams): ValueOf 0 && reportTransactions.every((transaction) => isPending(transaction))) { return false; } diff --git a/tests/unit/ReportPrimaryActionUtilsTest.ts b/tests/unit/ReportPrimaryActionUtilsTest.ts index befac8f8b520..435efee1c68a 100644 --- a/tests/unit/ReportPrimaryActionUtilsTest.ts +++ b/tests/unit/ReportPrimaryActionUtilsTest.ts @@ -1,11 +1,10 @@ import {renderHook} from '@testing-library/react-native'; import Onyx from 'react-native-onyx'; -import type {OnyxCollection} from 'react-native-onyx'; import useReportIsArchived from '@hooks/useReportIsArchived'; import {getValidConnectedIntegration} from '@libs/PolicyUtils'; // eslint-disable-next-line no-restricted-syntax import type * as PolicyUtils from '@libs/PolicyUtils'; -import {getReportPrimaryAction, getTransactionThreadPrimaryAction, isMarkAsResolvedAction, isPrimaryMarkAsResolvedAction, isReviewDuplicatesAction} from '@libs/ReportPrimaryActionUtils'; +import {getReportPrimaryAction, getTransactionThreadPrimaryAction, isMarkAsResolvedAction, isReviewDuplicatesAction} from '@libs/ReportPrimaryActionUtils'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import type {Policy, Report, ReportAction, Transaction, TransactionViolation} from '@src/types/onyx'; @@ -1154,138 +1153,4 @@ describe('getTransactionThreadPrimaryAction', () => { expect(result2).toBe(false); }); }); - - describe('isPrimaryMarkAsResolvedAction', () => { - const submitterAccountID = 1; - const otherUserAccountID = 3; - const submitterEmail = 'submitter@example.com'; - beforeEach(async () => { - jest.clearAllMocks(); - Onyx.clear(); - await Onyx.merge(ONYXKEYS.SESSION, {accountID: submitterAccountID, email: submitterEmail}); - }); - - it('should return true if isMarkAsResolvedAction returns true and there is exactly one transaction', () => { - const policy = { - role: CONST.POLICY.ROLE.ADMIN, - } as Policy; - - const report = { - reportID: REPORT_ID, - ownerAccountID: submitterAccountID, - type: CONST.REPORT.TYPE.EXPENSE, - } as unknown as Report; - - const violations: OnyxCollection = { - [`${ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS}1`]: [ - { - name: CONST.VIOLATIONS.AUTO_REPORTED_REJECTED_EXPENSE, - type: CONST.VIOLATION_TYPES.WARNING, - }, - ], - }; - - const reportTransactions = [ - { - transactionID: '1', - } as unknown as Transaction, - ]; - - const result = isPrimaryMarkAsResolvedAction(report, reportTransactions, violations, policy); - expect(result).toBe(true); - }); - - it('should return false if there are multiple transactions', () => { - const policy = { - role: CONST.POLICY.ROLE.ADMIN, - } as Policy; - - const report = { - reportID: REPORT_ID, - ownerAccountID: submitterAccountID, - type: CONST.REPORT.TYPE.EXPENSE, - } as unknown as Report; - - const violations: OnyxCollection = { - [`${ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS}1`]: [ - { - name: CONST.VIOLATIONS.AUTO_REPORTED_REJECTED_EXPENSE, - type: CONST.VIOLATION_TYPES.WARNING, - }, - ], - }; - - const reportTransactions = [ - { - transactionID: '1', - } as unknown as Transaction, - { - transactionID: '2', - } as unknown as Transaction, - ]; - - const result = isPrimaryMarkAsResolvedAction(report, reportTransactions, violations, policy); - expect(result).toBe(false); - }); - - it('should return false if isMarkAsResolvedAction returns false', () => { - const policy = { - role: CONST.POLICY.ROLE.USER, - } as Policy; - - const report = { - reportID: REPORT_ID, - ownerAccountID: otherUserAccountID, - type: CONST.REPORT.TYPE.EXPENSE, - } as unknown as Report; - - const violations: OnyxCollection = { - [`${ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS}1`]: [ - { - name: CONST.VIOLATIONS.MISSING_CATEGORY, - type: CONST.VIOLATION_TYPES.VIOLATION, - }, - ], - }; - - const reportTransactions = [ - { - transactionID: '1', - } as unknown as Transaction, - ]; - - const result = isPrimaryMarkAsResolvedAction(report, reportTransactions, violations, policy); - expect(result).toBe(false); - }); - - it('should return false if report is not an expense report', () => { - const policy = { - role: CONST.POLICY.ROLE.ADMIN, - } as Policy; - - const report = { - reportID: REPORT_ID, - ownerAccountID: submitterAccountID, - type: CONST.REPORT.TYPE.INVOICE, - } as unknown as Report; - - const violations: OnyxCollection = { - [`${ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS}1`]: [ - { - name: CONST.VIOLATIONS.AUTO_REPORTED_REJECTED_EXPENSE, - type: CONST.VIOLATION_TYPES.WARNING, - }, - ], - }; - - const reportTransactions = [ - { - transactionID: '1', - } as unknown as Transaction, - ]; - - const result = isPrimaryMarkAsResolvedAction(report, reportTransactions, violations, policy); - expect(result).toBe(false); - }); - }); });