Skip to content

Commit cb64fbb

Browse files
authored
Merge pull request Expensify#66920 from nkdengineer/fix/66181
potential duplicate violation is not removed
2 parents 32cf24b + 081d4e1 commit cb64fbb

2 files changed

Lines changed: 21 additions & 2 deletions

File tree

src/libs/TransactionUtils/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1185,7 +1185,7 @@ function isViolationDismissed(transaction: OnyxEntry<Transaction>, violation: Tr
11851185
if (!transaction || !violation) {
11861186
return false;
11871187
}
1188-
return transaction?.comment?.dismissedViolations?.[violation.name]?.[currentUserEmail] === `${currentUserAccountID}`;
1188+
return !!transaction?.comment?.dismissedViolations?.[violation.name]?.[currentUserEmail];
11891189
}
11901190

11911191
/**

tests/unit/TransactionUtilsTest.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import Onyx from 'react-native-onyx';
2+
import DateUtils from '@libs/DateUtils';
23
import {shouldShowBrokenConnectionViolation, shouldShowBrokenConnectionViolationForMultipleTransactions} from '@libs/TransactionUtils';
34
import CONST from '@src/CONST';
45
import IntlStore from '@src/languages/IntlStore';
@@ -34,6 +35,7 @@ function generateTransaction(values: Partial<Transaction> = {}): Transaction {
3435
}
3536

3637
const CURRENT_USER_ID = 1;
38+
const CURRENT_USER_EMAIL = 'test@example.com';
3739
const SECOND_USER_ID = 2;
3840
const FAKE_OPEN_REPORT_ID = 'FAKE_OPEN_REPORT_ID';
3941
const FAKE_OPEN_REPORT_SECOND_USER_ID = 'FAKE_OPEN_REPORT_SECOND_USER_ID';
@@ -111,7 +113,7 @@ describe('TransactionUtils', () => {
111113
Onyx.init({
112114
keys: ONYXKEYS,
113115
initialKeyStates: {
114-
[ONYXKEYS.SESSION]: {accountID: CURRENT_USER_ID},
116+
[ONYXKEYS.SESSION]: {accountID: CURRENT_USER_ID, email: 'test@example.com'},
115117
...reportCollectionDataSet,
116118
},
117119
});
@@ -646,4 +648,21 @@ describe('TransactionUtils', () => {
646648
expect(result).toBe(true);
647649
});
648650
});
651+
652+
describe('isViolationDismissed', () => {
653+
it('should return true when violation is dismissed for current user', () => {
654+
const transaction = generateTransaction({
655+
comment: {
656+
dismissedViolations: {
657+
[CONST.VIOLATIONS.DUPLICATED_TRANSACTION]: {
658+
[CURRENT_USER_EMAIL]: DateUtils.getDBTime(),
659+
},
660+
},
661+
},
662+
});
663+
const violation = {type: CONST.VIOLATION_TYPES.VIOLATION, name: CONST.VIOLATIONS.DUPLICATED_TRANSACTION};
664+
const result = TransactionUtils.isViolationDismissed(transaction, violation);
665+
expect(result).toBe(true);
666+
});
667+
});
649668
});

0 commit comments

Comments
 (0)