Skip to content

PR 134 contest (on repo, rather than fork)#135

Closed
pfeerick wants to merge 38 commits intomainfrom
pr-134-contest
Closed

PR 134 contest (on repo, rather than fork)#135
pfeerick wants to merge 38 commits intomainfrom
pr-134-contest

Conversation

@pfeerick
Copy link
Member

@pfeerick pfeerick commented Feb 7, 2026

Copy of #134 on repo... probably need to redo a714a91 on my linux desktop rather than mac mini 😆

Could pin @electron/rebuild@npm:3.6.0 instead also (i.e. current main, since that clearly works).

@pfeerick pfeerick marked this pull request as draft February 7, 2026 05:04
@codecov
Copy link

codecov bot commented Feb 7, 2026

Codecov Report

❌ Patch coverage is 6.01704% with 3530 lines in your changes missing coverage. Please review.
✅ Project coverage is 35.70%. Comparing base (6f8bbab) to head (6d51d07).

Files with missing lines Patch % Lines
...rc/renderer/pages/backup/file/BackupUploadArea.tsx 0.00% 755 Missing ⚠️
src/renderer/pages/backup/BackupRestoreFlow.tsx 0.00% 675 Missing ⚠️
src/shared/backend/services/backupStore.ts 9.37% 628 Missing ⚠️
src/renderer/pages/backup/BackupCreateFlow.tsx 0.00% 467 Missing ⚠️
src/shared/backend/graph/backup/local.ts 27.98% 265 Missing ⚠️
src/renderer/pages/backup/CollisionModal.tsx 0.00% 226 Missing ⚠️
src/renderer/pages/backup/DiffViewerModal.tsx 0.00% 142 Missing ⚠️
src/renderer/pages/backup/file/BackupUploader.tsx 0.00% 115 Missing ⚠️
src/renderer/pages/backup/BackupScreen.tsx 0.00% 95 Missing ⚠️
src/shared/backend/graph/sdcard/index.ts 15.47% 71 Missing ⚠️
... and 11 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #135      +/-   ##
==========================================
- Coverage   44.43%   35.70%   -8.73%     
==========================================
  Files         108      121      +13     
  Lines       12690    16419    +3729     
  Branches      597      601       +4     
==========================================
+ Hits         5639     5863     +224     
- Misses       7043    10543    +3500     
- Partials        8       13       +5     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Pin @electron/node-gyp to npm version 10.2.0-electron.2 to avoid CI failures caused by pulling from GitHub directly. This resolves dependency installation issues in CI environments.
- Define DownloadProgress type locally instead of importing from ky
- Add type resolution for @types/react and @types/react-dom to avoid conflicts
- Fix WebDFUSettings interface with proper null handling for interfaceName
- Wrap children in Fragment in ExecuationOverlay to fix children prop error
- Add explicit ReactNode casts in Layout and FlashExecution components
- Fix code formatting with prettier in Layout.tsx and FlashExecution.tsx
- Wrap Playwright test hooks in test.describe() blocks
- Move beforeEach/afterEach inside proper test suite contexts
- Fixes compatibility-notice, firmware-selection, and flash-firmware e2e tests
- Remove usage of private ._extendTest() API which causes Playwright test failures
- Inline platform fixtures directly into baseTest using public .extend()
- Fixes 'Playwright Test did not expect test.describe() to be called here' error
- Resolves compatibility with current Playwright version
…Test export chain

- Export 'test' from browserTest.ts and electronTest.ts
- Import both as aliases in pageTest.ts and conditionally export
- Simplify baseTest to extend platformTest directly
- This preserves the Playwright test type and resolves 'did not expect test.describe()' errors
Restores the original test fixture chain using ._extendTest() API and
proper TestType typing in pageTest.ts. This matches the working
configuration from main branch.
Resolves version mismatch between playwright@1.58.0 and @playwright/test@1.29.1
that caused 'test.describe() called in unexpected context' errors when running
yarn e2e:web.
- Add backup.spec.ts with 17 tests covering:
  - Query: localBackup, sdcardModelsWithNames, checkModelCollisions, availableModelSlots
  - Mutation: registerLocalBackup, restoreBackupToSdcard, createBackupFromSdcard, downloadIndividualModels
- Fix Uint8Array conversion for Blob in jsdom environment
- Revert e2e spec files to main branch version
- Add BackupScreen.spec.tsx with 4 tests for tab navigation
- Add DiffViewerModal.spec.tsx with 12 tests for diff viewer functionality
- Add CollisionModal.spec.tsx with 15 tests for collision handling
- Add BackupFileSummary.spec.tsx with 8 tests for file summary display
- Add 4 error handling tests to backup.spec.ts for GraphQL resolvers

Total: 43 new tests, bringing total test count to 212.
All tests passing with no lint errors.
- Add BackupCreateFlow.spec.tsx with 13 tests covering rendering, UI elements, layout, and interactions
- Add BackupRestoreFlow.spec.tsx with 19 tests covering upload area, collision detection, modals, and props
- Add BackupUploader.spec.tsx with 18 tests covering GraphQL queries/mutations, callbacks, and state management

Total: 50 new tests added (262 tests passing overall)
Increases test coverage for radio-backup feature
…ility

- Cast createElement mock implementation as 'typeof document.createElement'
- Fixes TypeScript errors with overloaded createElement signatures
- Resolves build failures in BackupCreateFlow and BackupRestoreFlow tests
@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Feb 8, 2026

Deploying buddy with  Cloudflare Pages  Cloudflare Pages

Latest commit: 0d87869
Status: ✅  Deploy successful!
Preview URL: https://a0e7da28.buddy-7a6.pages.dev
Branch Preview URL: https://head.buddy-7a6.pages.dev

View logs

@github-actions
Copy link

github-actions bot commented Feb 8, 2026

EdgeTX Buddy has been automatically deployed to Cloudflare.
✅ Preview: https://a0e7da28.buddy-7a6.pages.dev
✅ Storybook: https://a0e7da28.buddy-7a6.pages.dev/storybook

- Changed the prompt from "When disabled, you'll be asked how to handle models that already exist on your SD card" to "When enabled, you'll be asked how to handle models that already exist on your SD card" across multiple locale files (be, cs, da, de, es, fr, it, ru, sv, uk, zh).

feat(backup): include labels.yml in .etx backups for Companion compatibility

- Updated the BackupCreateFlow component to always include labels when the radio has them for .etx format.
- Added a tooltip to indicate that labels.yml is always included in .etx backups.

refactor(backup): improve collision detection and model slot handling

- Replaced overwriteExisting state with collisionDetection in BackupRestoreFlow.
- Updated logic to check for collisions based on the new collisionDetection state.
- Enhanced model slot naming based on radio type (B&W vs ColourLCD) using new utility functions.

test(backup): add tests for model slots and RADIO/radio.yml handling

- Added tests to ensure correct model slot availability based on existing models and labels.yml presence.
- Included tests for the inclusion and restoration of RADIO/radio.yml in backups.

refactor(backupStore): streamline model file validation and handling

- Introduced isValidModelFile function to filter out invalid model files (macOS resource forks and labels).
- Updated backup and restore functions to utilize the new validation logic.

refactor(firmware-constants): enhance model slot management

- Added getMaxModels and modelSlotName functions to manage model slots based on radio type.
- Deprecated MAX_MODELS in favor of using specific constants for B&W and ColourLCD radios.

fix(zipParser): ensure valid model files are extracted from ZIP

- Updated the extractYamlFromZip function to filter out invalid model files using isValidModelFile.
…on and text file support

- Added support for selecting an SD Card to enable restore in English and Chinese locales.
- Updated BackupRestoreFlow to improve collision detection logic and handle radio settings appropriately.
- Enhanced CollisionModal to differentiate between model and radio file collisions, providing better user feedback.
- Modified BackupUploadArea to allow .txt files and improve restore button behavior based on SD Card selection.
- Updated backup tests to cover scenarios involving radio.yml and text files, ensuring proper collision detection and restoration behavior.
- Refactored firmware-constants to remove deprecated MAX_MODELS constant and added utility for identifying model text files.
Amigache added 3 commits March 2, 2026 12:41
- Extract labels.yml from backup ZIP during restore instead of ignoring it
- Preserve label assignments, bitmap paths and lastopen timestamps from backup
- Merge backup Labels categories into existing ones on target SD card
- Create labels.yml even when target SD card has none (previously skipped)
- Fall back to empty stubs only when backup has no labels.yml
# Conflicts:
#	locales/be/flashing.json
#	locales/cs/flashing.json
#	locales/da/flashing.json
#	locales/de/flashing.json
#	locales/es/flashing.json
#	locales/fr/flashing.json
#	locales/it/flashing.json
#	locales/ru/flashing.json
#	locales/sv/flashing.json
#	locales/uk/flashing.json
#	locales/zh/flashing.json
#	src/shared/dfu/index.ts
#	yarn.lock
react-ga was removed from the upstream repo (tracking.tsx deleted).
Replace exception() call with console.error to fix CI failures:
- TS2307: Cannot find module 'react-ga'
- no-unsafe-call ESLint error on exception() typed as any
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants