Skip to content

Desktop and native tests

Host validation has two levels: static contracts and behavior in a launched host. Use both when a change reaches a bridge, plugin, lifecycle, packaging, or native presentation path.

Terminal window
pnpm electron:verify
pnpm android:verify
pnpm ios:verify
pnpm architecture:check

These checks can prove source boundaries, manifests, bridge shape, and packaging configuration. They cannot prove an operating-system permission prompt, native Back, secure storage, app lifecycle, an Electron window, or an installed WebView.

Terminal window
pnpm electron:e2e:smoke
pnpm electron:e2e
pnpm e2e:mobile
TRINITY_E2E_HOMESERVER=synapse TRINITY_E2E_HOMESERVER_RUNTIME=native pnpm e2e:mobile:ios
pnpm nx run trinity-ios:verify-native

Electron needs its separate dependencies and a usable display. Android needs the SDK and a managed emulator or device. iOS validation needs macOS and Xcode; the installed-app suite also needs the pinned iOS Simulator and runs Synapse and Caddy as host processes because it does not use Docker. Use the platform-specific project target to inspect exact prerequisites and outputs.

Browser mobile emulation provides useful responsive evidence but does not establish Capacitor, WebView, plugin, or native operating-system behavior. An unsigned simulator build proves something different from a signed device package; state that distinction in review evidence.

Store screenshots, traces, simulator logs, and temporary packages in ignored output. Report which host and build configuration ran, the command and result, and every affected host that remained unavailable.

Read platform integrations before changing a bridge and diagnose failures before repeating a failed run.