diff --git a/src/libs/TransactionUtils/index.ts b/src/libs/TransactionUtils/index.ts index 7fb38273f785..920e1c543792 100644 --- a/src/libs/TransactionUtils/index.ts +++ b/src/libs/TransactionUtils/index.ts @@ -1185,7 +1185,7 @@ function isViolationDismissed(transaction: OnyxEntry, violation: Tr if (!transaction || !violation) { return false; } - return transaction?.comment?.dismissedViolations?.[violation.name]?.[currentUserEmail] === `${currentUserAccountID}`; + return !!transaction?.comment?.dismissedViolations?.[violation.name]?.[currentUserEmail]; } /** diff --git a/tests/unit/TransactionUtilsTest.ts b/tests/unit/TransactionUtilsTest.ts index 96e7432b85ff..09689eedbec5 100644 --- a/tests/unit/TransactionUtilsTest.ts +++ b/tests/unit/TransactionUtilsTest.ts @@ -1,4 +1,5 @@ import Onyx from 'react-native-onyx'; +import DateUtils from '@libs/DateUtils'; import {shouldShowBrokenConnectionViolation, shouldShowBrokenConnectionViolationForMultipleTransactions} from '@libs/TransactionUtils'; import CONST from '@src/CONST'; import IntlStore from '@src/languages/IntlStore'; @@ -34,6 +35,7 @@ function generateTransaction(values: Partial = {}): Transaction { } const CURRENT_USER_ID = 1; +const CURRENT_USER_EMAIL = 'test@example.com'; const SECOND_USER_ID = 2; const FAKE_OPEN_REPORT_ID = 'FAKE_OPEN_REPORT_ID'; const FAKE_OPEN_REPORT_SECOND_USER_ID = 'FAKE_OPEN_REPORT_SECOND_USER_ID'; @@ -111,7 +113,7 @@ describe('TransactionUtils', () => { Onyx.init({ keys: ONYXKEYS, initialKeyStates: { - [ONYXKEYS.SESSION]: {accountID: CURRENT_USER_ID}, + [ONYXKEYS.SESSION]: {accountID: CURRENT_USER_ID, email: 'test@example.com'}, ...reportCollectionDataSet, }, }); @@ -646,4 +648,21 @@ describe('TransactionUtils', () => { expect(result).toBe(true); }); }); + + describe('isViolationDismissed', () => { + it('should return true when violation is dismissed for current user', () => { + const transaction = generateTransaction({ + comment: { + dismissedViolations: { + [CONST.VIOLATIONS.DUPLICATED_TRANSACTION]: { + [CURRENT_USER_EMAIL]: DateUtils.getDBTime(), + }, + }, + }, + }); + const violation = {type: CONST.VIOLATION_TYPES.VIOLATION, name: CONST.VIOLATIONS.DUPLICATED_TRANSACTION}; + const result = TransactionUtils.isViolationDismissed(transaction, violation); + expect(result).toBe(true); + }); + }); });