Skip to content
bmuxBack

Windows tests

The Windows workflow runs on a disposable Windows 2022 desktop with Node 24. It builds the x64 NSIS installer, installs it silently into a temporary path with spaces, and runs pnpm test:windows with three repetitions of each startup test and no retries. Check runs Windows as a separate job beside the normal macOS suite. Release runs the same Windows suite against its installer before uploading it.

The focused unit suite covers native IPC, Windows paths, keyboard/configuration, plugin authentication, cancellation, timeouts and shutdown. The startup suite checks the installed executable opens a visible window, the installed CLI can start and control it, local fixture pages render, external and bundled plugins communicate over named pipes, forged plugin tokens are rejected, and the same isolated data directory can restart. Profile paths include spaces and Unicode. Tests use temporary data/configuration and never open a real browser profile.

Run it through workflow dispatch:

gh workflow run windows.yml --ref YOUR_BRANCH

On a disposable Windows desktop, install the built package and run:

$env:BMUX_WINDOWS_APP = 'C:\test install\bmux.exe'
pnpm test:windows

The suite refuses to run on other platforms. Local macOS GUI tests continue to use Tart. Windows CI retains the tested installer and Playwright diagnostics; release failures retain diagnostics and prevent installer publication.

Windows IPC uses named pipes under \\.\pipe\. Unix continues to use the existing control socket address with 0700 directories and 0600 sockets. Plugin pipes are unique to each host and still require a per-invocation token. Windows pipe cleanup belongs to the OS; no filesystem chmod, ownership or unlink operations run against those endpoints.

Edit on GitHub