[No QA] Victory chart renderer: Bun CLI scaffold#91667
Conversation
Introduce the server subproject with a hello-world CLI, Bun pin, npm scripts, and a bun:test integration test for issue #91528 PR 2. Co-authored-by: Cursor <cursoragent@cursor.com>
Point server sources at the subproject tsconfig and relax App-only lint rules so the Bun CLI can use node/bun imports cleanly. Co-authored-by: Cursor <cursoragent@cursor.com>
Codecov Report✅ All modified and coverable lines are covered by tests. |
📲 Install BuildsAndroid
|
Typecheck server tools with a dedicated tsconfig that enables @types/bun instead of pulling them into the root React Native tsconfig include. Co-authored-by: Cursor <cursoragent@cursor.com>
Share one server-side TypeScript project across victory-chart-renderer and future sibling CLI tools under server/. Co-authored-by: Cursor <cursoragent@cursor.com>
|
@arosiclair Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
luacmartins
left a comment
There was a problem hiding this comment.
LGTM. Left a couple of minor comments.
| @@ -0,0 +1,25 @@ | |||
| import {expect, test} from 'bun:test'; | |||
There was a problem hiding this comment.
NAB but can we just use server/victory-chart-renderer/tests/cli.test.ts instead of server/victory-chart-renderer/__tests__/cli.test.ts in the path to this file?
|
Additionally, I think steps 3/4 are missing building the binary |
Co-authored-by: Carlos Martins <cmartins@expensify.com>
steps 3/4 in the test steps? Building the binary is in there I think. or am I missing something? |
Use tests/ instead of __tests__, add server:vcr:test npm script, and update README and server tsconfig to match. Co-authored-by: Cursor <cursoragent@cursor.com>
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / Safari |
|
🚧 @roryabraham 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/roryabraham in version: 9.3.84-0 🚀
Bundle Size Analysis (Sentry): |
|
🚀 Deployed to staging by https://github.com/roryabraham in version: 9.3.86-0 🚀
Bundle Size Analysis (Sentry): |
|
🚀 Deployed to staging by https://github.com/roryabraham in version: 9.3.88-0 🚀
Bundle Size Analysis (Sentry): |
|
🚀 Deployed to production by https://github.com/mountiny in version: 9.3.88-2 🚀
|
Explanation of Change
PR 2 of the stacked Victory Chart Renderer rollout. Adds the
server/victory-chart-renderer/Bun CLI subproject with npm scripts, a pinned Bun version, ESLint wiring, and a hello-world CLI that writes a fixed string to an output path.Fixed Issues
(partial) #91528
Tests
npm run server:vcr:dev /tmp/out.txt && cat /tmp/out.txtand confirm the file containsvictory-chart-renderer scaffolded.cd server/victory-chart-renderer && bun testand confirm the CLI integration test passes.npm run server:vcr:build:macos && ./server/victory-chart-renderer/dist/victory-chart-renderer-darwin-arm64 /tmp/outMac.txt && cat /tmp/outMac.txtconfirm the same scaffold string is printed.npm run server:vcr:build:linux-arm && vssh "./server/victory-chart-renderer/dist/victory-chart-renderer-linux-arm64 /tmp/out.txt && cat /tmp/out.txt". Confirm the scaffold string is printed.npm run server:vcr:build:linux && scp -J bastion1.sjc ./server/victory-chart-renderer/dist/victory-chart-renderer-linux-x64 <your_username>@virt1.lax:~/victory-chart-renderer && ssh -J bastion1.sjc virt1.lax "./victory-chart-renderer /tmp/out.txt && cat /tmp/out.txt". Confirm the same scaffold string is written.Offline tests
None.
QA Steps
None.
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
None.