-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: Inbox showing GBR when there’s a report with RBR #51643
Changes from 17 commits
87f6644
850f5ab
6d00a65
bba3e08
bbbe5aa
462c52f
c45ade8
f20b84f
a708691
85d684f
0f9e3df
976c78f
e156dca
e82e777
8d0da00
d42e264
ef77bb9
bd9c7ac
16b9d4e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
{ | ||
"session": { | ||
"accountID": 18634488 | ||
}, | ||
"reports": { | ||
"report_4286515777714555": { | ||
"type": "chat", | ||
"isOwnPolicyExpenseChat": false, | ||
"ownerAccountID": 0, | ||
"parentReportActionID": "8722650843049927838", | ||
"parentReportID": "6955627196303088", | ||
"policyID": "57D0F454E0BCE54B", | ||
"reportID": "4286515777714555", | ||
"stateNum": 0, | ||
"statusNum": 0 | ||
}, | ||
"report_6955627196303088": { | ||
"reportID": "6955627196303088", | ||
"chatReportID": "1699789757771388", | ||
"policyID": "57D0F454E0BCE54B", | ||
"type": "expense", | ||
"ownerAccountID": 18634488, | ||
"stateNum": 1, | ||
"statusNum": 1, | ||
"parentReportID": "1699789757771388", | ||
"parentReportActionID": "7978085421707288417" | ||
} | ||
}, | ||
"transactionViolations": { | ||
"transactionViolations_3106135972713435169": [ | ||
{ | ||
"name": "missingCategory", | ||
"type": "violation" | ||
} | ||
], | ||
"transactionViolations_3690687111940510713": [ | ||
{ | ||
"name": "missingCategory", | ||
"type": "violation" | ||
} | ||
] | ||
}, | ||
"reportActions": { | ||
"reportActions_6955627196303088": { | ||
"8722650843049927838": { | ||
"actionName": "IOU", | ||
"actorAccountID": 18634488, | ||
"automatic": false, | ||
"avatar": "https: //d2k5nsl2zxldvw.cloudfront.net/images/avatars/default-avatar_1.png", | ||
"isAttachmentOnly": false, | ||
"originalMessage": { | ||
"amount": 12300, | ||
"comment": "", | ||
"currency": "VND", | ||
"IOUTransactionID": "3106135972713435169", | ||
"IOUReportID": "6955627196303088" | ||
}, | ||
"message": [ | ||
{ | ||
"deleted": "", | ||
"html": "₫123 expense", | ||
"isDeletedParentAction": false, | ||
"isEdited": false, | ||
"text": "₫123 expense", | ||
"type": "COMMENT", | ||
"whisperedTo": [] | ||
} | ||
], | ||
"person": [ | ||
{ | ||
"style": "strong", | ||
"text": "adasdasd", | ||
"type": "TEXT" | ||
} | ||
], | ||
"reportActionID": "8722650843049927838", | ||
"shouldShow": true, | ||
"created": "2024-11-05 11: 19: 18.706", | ||
"childReportID": "4286515777714555", | ||
"lastModified": "2024-11-05 11: 19: 18.706", | ||
"childReportNotificationPreference": "hidden", | ||
"childType": "chat" | ||
} | ||
} | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
import type {OnyxCollection} from 'react-native-onyx'; | ||
import Onyx from 'react-native-onyx'; | ||
import {getBrickRoadForPolicy} from '@libs/WorkspacesSettingsUtils'; | ||
import ONYXKEYS from '@src/ONYXKEYS'; | ||
import type {Report, ReportActions, TransactionViolations} from '@src/types/onyx'; | ||
import type {ReportCollectionDataSet} from '@src/types/onyx/Report'; | ||
import * as TestHelper from '../utils/TestHelper'; | ||
import waitForBatchedUpdates from '../utils/waitForBatchedUpdates'; | ||
import mockData from './WorkspaceSettingsUtilsTest.json'; | ||
|
||
describe('WorkspacesSettingsUtils', () => { | ||
beforeAll(() => { | ||
Onyx.init({ | ||
keys: ONYXKEYS, | ||
}); | ||
}); | ||
|
||
beforeEach(() => { | ||
global.fetch = TestHelper.getGlobalFetchMock(); | ||
return Onyx.clear().then(waitForBatchedUpdates); | ||
}); | ||
describe('getBrickRoadForPolicy', () => { | ||
it('Should return "error"', async () => { | ||
// Given mock data for reports, transaction violations, sessions, and report actions | ||
const report = Object.values(mockData.reports)?.at(0); | ||
const transactionViolations = mockData.transactionViolations; | ||
const reports = mockData.reports; | ||
const session = mockData.session; | ||
const reportActions = mockData.reportActions; | ||
|
||
await Onyx.multiSet({ | ||
...(reports as ReportCollectionDataSet), | ||
...(reportActions as OnyxCollection<ReportActions>), | ||
...(transactionViolations as OnyxCollection<TransactionViolations>), | ||
truph01 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
session, | ||
}); | ||
|
||
await waitForBatchedUpdates(); | ||
|
||
// When calling getBrickRoadForPolicy with a report and report actions | ||
const result = getBrickRoadForPolicy(report as Report, reportActions as OnyxCollection<ReportActions>); | ||
|
||
// Then the result should be 'error' | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why is the result There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I added 2nd test case, which will return There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks for the second test case. I still don't think I know the answer to my question though. Can you please update this code comment to explain why it's expected to be "error" and not anything else? Again, what is it about the report and report actions that produce this result? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @truph01 bump on this one. I'm still looking for some more contextual code comments for this. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Apologies, I missed that earlier. I've updated the comment. Let's aim to get this PR merged today. |
||
expect(result).toBe('error'); | ||
}); | ||
|
||
it('Should return "undefined"', async () => { | ||
// Given mock data for reports, transaction violations, sessions, and report actions | ||
const report = Object.values(mockData.reports)?.at(0); | ||
const reports = mockData.reports; | ||
const session = mockData.session; | ||
const reportActions = mockData.reportActions; | ||
|
||
await Onyx.multiSet({ | ||
...(reports as ReportCollectionDataSet), | ||
...(reportActions as OnyxCollection<ReportActions>), | ||
session, | ||
}); | ||
|
||
await waitForBatchedUpdates(); | ||
|
||
// When calling getBrickRoadForPolicy with a report and report actions | ||
const result = getBrickRoadForPolicy(report as Report, reportActions as OnyxCollection<ReportActions>); | ||
|
||
// Then the result should be 'error' | ||
truph01 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
expect(result).toBe(undefined); | ||
}); | ||
}); | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add line break