Repository navigation
Conversation
Seatbelt-Operation: 4026f6b9-f9fe-4443-8cfd-07e619ccd7e8
Seatbelt-Operation: f8a19569-0abb-429e-a2e3-094cbd2debbc
Seatbelt-Operation: c422ddda-3c1b-403c-b8a4-eba3a6a14e3b
Seatbelt-Operation: 6df47529-1e13-4f81-ad41-bc184395612d
Seatbelt-Operation: 9ebe2014-21ca-44ee-b434-1dca06dab3fa
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Explanation of Change
Remove unsafe type assertions from five production paths: workspace plan selection, upgrade artwork lookup, preferred currency, video attachment preview, and chart label units. Preserve the supported plan choices, currency precedence, artwork lookup, and chart formatting. The video preview accepts a nullable source-load event before requesting a thumbnail. Focused tests cover these paths, including the selected player,
sourceLoadevent, andnulldefault in the attachment preview.Changed files
src/pages/workspace/DynamicWorkspaceOverviewPlanTypePage.tsxsrc/pages/workspace/upgrade/UpgradeIntro.tsxsrc/hooks/usePreferredCurrency.tssrc/components/AttachmentPreview.tsxsrc/components/Charts/hooks/useChartLabelFormats.tstests/unit/DynamicWorkspaceOverviewPlanTypePageTest.tsxtests/unit/UpgradeIntroTest.tsxtests/unit/usePreferredCurrencyTest.tsxtests/unit/AttachmentPreviewTest.tsxtests/unit/components/Charts/useChartLabelFormats.test.tsFixed Issues
General type-safety cleanup across these five production files.
Tests
On the local candidate, the five focused Jest suites passed all 27 tests. Focused App lint passed on the ten changed paths with zero errors and two allowed warnings. The cleanup rule reported zero findings on each of the five production targets. Formatting, spelling, and React Compiler checks passed on the ten-path scope. Focused TypeScript reported zero diagnostics on the changed test root. The attachment test checks the selected player,
sourceLoad, andnull, then checks thumbnail generation after a source event and no generation for a non-video attachment.Run the human cases on a candidate development build with authorized ordinary test accounts. Plan-picker, currency, and chart edge cases are covered by the focused tests.
Advanced Approvals artwork
Setup: Sign in to an account with an ordinary eligible Collect workspace. Have published-base and candidate builds that can open that same workspace with the same data and viewport. Do not complete an upgrade.
Native shared-video preview
Setup: On Android native and iOS native candidate builds, sign in to an ordinary writable test chat. Have a valid MP4 of at least three seconds available in the device's files or photo app.
Offline tests
N/A for additional offline testing: the changes do not alter a network, persistence, retry, or reconnect path.
QA Steps
Same as tests on a build containing this candidate, with the stated workspace, chat, and device prerequisites.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, I verified the components usingAvatarare working as expected)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.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Screenshots/Videos
https://github.com/KJ21-ENG/App/releases/download/chrome-qa-batch-20261015/PR-103226-Chrome-QA-unmasked-2x.mp4
Selected recording lanes are Windows Chrome desktop and Windows Chrome with mobile viewport emulation. The mobile viewport is desktop Chrome emulation, not Android Chrome, iOS Safari, or native coverage; it cannot exercise the system Share action or native video decoding. This Chrome recording reports console errors and circular clipping on earlier revision
f66be448cb893be18395528ba72922cb380c07d2; it does not verify this candidate. The clipping view is unchanged across the audited base and published head, so square corners are not a pass criterion. Candidate artwork comparison, Android and iOS native MP4 preview, console behavior, and actual mobile browser and Safari coverage remain unverified. Mocked tests do not establish native event delivery or decoding. Focused TypeScript found 55 diagnostics in imported files outside the changed test root; no clean full-App typecheck is claimed. Checked checklist boxes are presentation only and do not establish manual passes.