[Payment due @Krishna2323] Fix submit approver selection after retract and workflow changes - #89393
Conversation
|
@Krishna2323 feel free to take a look, thanks! |
Codecov Report❌ Looks like you've decreased code coverage for some files. Please write tests to increase, or at least maintain, the existing level of code coverage. See our documentation here for how to interpret this table.
|
|
@codex review |
|
Codex Review: Didn't find any major issues. Already looking forward to the next diff. ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
@lakchote this test is failing: Monosnap.screencast.2026-05-05.20-00-27.mp4 |
|
@Krishna2323 I've tested with the new changes, and the test now works. Can you verify it again please? |
|
@lakchote I tested it on web and it worked, but it failed again on iOS native. web_chrome.mp4ios_hybrid_2_failing.mp4 |
I'll take a look tomorrow, thank you |
|
@Krishna2323 I'm not able to reproduce the issue on iOS. Could you please tell me who is the user in the iOS video example you have? I don't see any admins in your members list |
|
🚧 @lakchote has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
Asked QA for a retest of those issues on Web/iOS/Android in the meantime |
|
Checking... |
|
@lakchote I can still reproduce the issue, but it’s also reproducible on main. This happens when the approver is changed and I submit a report while it’s in the loading state: This PR:Monosnap.screencast.2026-05-07.18-19-35.mp4MainMonosnap.screencast.2026-05-07.18-27-13.mp4 |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppandroid_hybrid_1.mp4Android: mWeb Chromeandroid_chrome.mp4iOS: HybridAppMonosnap.screencast.2026-05-07.18-19-35.mp4iOS: mWeb Safariios_safari.mp4MacOS: Chrome / Safariweb_chrome_2.mp4web_chrome.mp4 |
|
🎯 @Krishna2323, thanks for reviewing and testing this PR! 🎉 A payment issue will be created for your review once this PR is deployed to production. If payment is not needed (e.g., regression PR review fix etc), react with 👎 to this comment to prevent the payment issue from being created. |
|
🚧 @mollfpr has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/mollfpr in version: 9.3.69-0 🚀
Bundle Size Analysis (Sentry): |
|
No help site changes are required for this PR. The changes fix internal approval routing logic ( |
|
🚀 Deployed to production by https://github.com/Beamanator in version: 9.3.69-18 🚀
|
|
🤖 Payment issue created: #90266 |
Explanation of Change
This fixes submit approver selection by preserving the existing report manager only when policy routing data is unreliable, recomputing when reliable workflow data is available.
Fixed Issues
Related to #89347 and #89365
Fixes the original issue https://github.com/Expensify/Expensify/issues/612574
Tests
Test 1
Action Performed:
Expected Result:
An admin can successfully submit a report created by an employee for the previous approver.
Screen.Recording.2026-05-01.at.15.29.14.mov
Test 2
Preconditions
Expected Result:
Employee can submit the report again
Screen.Recording.2026-05-01.at.15.35.24.mov
Offline tests
QA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
Same as in tests
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)myBool && <MyComponent />.src/languages/*files and using the translation methodWaiting for Copylabel for a copy review on the original GH to get the correct copy.STYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)/** comment above it */thisare necessary to be bound (i.e. avoidthis.submit = this.submit.bind(this);ifthis.submitis never passed to a component event handler likeonClick)StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))Avataris modified, I verified thatAvataris working as expected in all cases)ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari