chore(test): run Windows auto-update e2e tests via Parallels VM on macOS#9727
Conversation
|
There was a problem hiding this comment.
Pull request overview
This PR extends the updater blackbox E2E test harness to support running Windows/NSIS auto-update flows from a macOS host by delegating install/launch steps into a Parallels Windows VM, and adjusts the test fixture app/logging to be more VM/headless-friendly.
Changes:
- Add Parallels VM discovery + VM-aware install/launch paths for NSIS tests, plus HTTP-based delivery and SHA-256 verification for large installers.
- Update local HTTP server helper to support binding to non-loopback interfaces and add a helper to detect the Parallels host IP.
- Adjust the test fixture app to run headlessly (no window) during auto-update and to emit logs in a way that can be captured reliably.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| test/src/windows/winReseditTest.ts | Switch import to app-builder-lib/out/... for resource editing helper. |
| test/src/updater/blackboxUpdateTest.ts | Add VM routing, HTTP installer delivery + hashing, VM config placement, and longer polling for NSIS update completion. |
| test/src/rebuilderTest.ts | Switch exists import to builder-util/out/.... |
| test/src/helpers/launchAppCrossPlatform.ts | Add Parallels host IP detection, allow server bind address override, and add VM-based execution path. |
| test/snapshots/globTest.js.snap | Update snapshot offsets/sizes due to fixture output changes. |
| test/fixtures/test-app/app/index.js | Make updater test app headless-friendly and adjust logging/error handling for reliable stdout capture. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Extends the blackbox updater test suite so that NSIS/Windows tests can run directly from a macOS host using an existing Parallels Windows VM, without needing a native Windows runner.
getWindowsVm()IIFE; if found, Windows build/install/update steps are routed through it~/(mapped as\\Mac\Home\in the VM — always shared) rather than system temp (\\Mac\Host\private\var\folders\...which requires "All Disks" sharing)