fix: address bulk duplicate expense follow-ups #87697
Conversation
…ions Signed-off-by: krishna2323 <belivethatkg@gmail.com>
…ns to prevent double report creation offline Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
|
Hey, I noticed you changed If you want to automatically generate translations for other locales, an Expensify employee will have to:
Alternatively, if you are an external contributor, you can run the translation script locally with your own OpenAI API key. To learn more, try running: npx ts-node ./scripts/generateTranslations.ts --helpTypically, you'd want to translate only what you changed by running |
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
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 |
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
|
@codex review |
|
Codex Review: Didn't find any major issues. Already looking forward to the next diff. ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
…rations Signed-off-by: krishna2323 <belivethatkg@gmail.com>
|
@codex review |
|
Codex Review: Didn't find any major issues. Nice work! ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
|
@codex review. |
|
Codex Review: Didn't find any major issues. Nice work! ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
|
🤖 Code Review — PR #87697 Overall this looks solid. The core changes are correct and well-tested. A few notes: What's good:
Minor observations:
No blocking issues found. |
|
Please fix conflict |
|
conflicts resolved |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / Safari |
|
@situchan bump |
|
Please pull main. |
Screenshots/Videos87597.mov87598.mov87604.mov87609.mov87634.mov87663.mov |
|
Lets keep an eye out for any more blockers 🙇🏻 |
|
🚧 @JS00001 has triggered a test Expensify/App build. You can view the workflow run here. |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/JS00001 in version: 9.3.61-0 🚀
Bundle Size Analysis (Sentry): |
|
I reviewed the changes in this PR and found one documentation update is needed for Expensify's help site. What changed that affects docs: This PR introduces a 50-expense limit for bulk duplication (with a modal warning when exceeded). The existing help article "How to Duplicate an Expense" did not mention this limit. What doesn't need doc changes: The other fixes (offline single-report creation, unreported per diem/distance restrictions, selection mode behavior, production gate removal) are bug fixes or implementation refinements that don't change documented user workflows. Draft PR created: #88407 Changes made:
Note: I was unable to add the PR to GitHub project 196 due to token permission restrictions. Please add it manually. |
|
🚀 Deployed to production by https://github.com/marcaaron in version: 9.3.61-4 🚀
|
Explanation of Change
Fixed Issues
$ #87609
$ #87598
$ #87597
$ #87663
$ #87634
$ #87604
PROPOSAL:
Tests
#87609 — Selection mode consistency after bulk duplicate
Precondition: Account has at least one workspace.
#87598 — Offline bulk duplicate creates only one report
Precondition: Account has at least one workspace with delayed submissions and approvals enabled.
#87597 — Unreported per diem cannot be bulk duplicated
Precondition: Workspace has per diem rates configured.
#87663 — Unreported distance expense cannot be bulk duplicated
Precondition: Account has Self DM and a workspace.
#87634 — Offline bulk duplicate shows correct total for 3+ expenses
Precondition: Account has at least one workspace with delayed submissions and approvals enabled.
#87604 — Bulk duplicate capped at 50 expenses
Precondition: Account has more than 50 expenses.
Repeat #87604 on report details page
Offline tests
QA Steps
Same as tests
Verify that no errors appear in the JS console
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectioncanBeMissingparam foruseOnyxtoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.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
fix_87609_selection_mode_inconsistency.mp4
iOS: mWeb Safari
MacOS: Chrome / Safari
fix_87597_unreported_distance.mp4
fix_87597_unreported_per_diem.mp4
fix_87598_two_previews.mp4
fix_87604_cap_50_expenses_dupe.mp4
fix_87634_incorrect_total_2.mp4
fix_87634_incorrect_total.mp4