Issue Description
Add Windows desktop UI automation tests for xBeacon using the existing .NET/xUnit stack. This enables local, repeatable validation of WPF/WinForms UI flows (dashboard, tray interactions, status indicators) without manual testing.
Why FlaUI (vs WinAppDriver)
- No external service: FlaUI is a pure .NET library; WinAppDriver requires installing and running a separate driver service.
- Simpler local dev loop: tests can run with
dotnet test without extra setup.
- Great fit for WPF/WinForms: FlaUI UIA3 works well for desktop UI automation in .NET apps.
- Lower maintenance: fewer moving parts in CI and for contributors.
When WinAppDriver still makes sense
- You already use Appium/WebDriver elsewhere.
- You need WebDriver tooling or cross‑language test clients.
- You want to standardize on a single driver protocol.
Proposed Implementation Plan
- Create a new test project
tests/xBeacon.Tests.UI targeting net8.0-windows with xUnit.
- Add FlaUI packages (
FlaUI.Core, FlaUI.UIA3) and a helper to launch/attach to xBeacon.Windows.
- Add smoke UI tests:
- App launches and dashboard opens (either via test flag or direct window handle).
- Status indicator renders expected state.
- Basic notifications list renders without error.
- Add a
--ui-test flag or test config to run app in deterministic mode.
- Document local test steps and note CI requirement (self‑hosted Windows runner with desktop session).
Acceptance Criteria
- At least 2–3 UI smoke tests pass locally on Windows 11.
- Tests can launch and close xBeacon cleanly without leaving processes.
- Docs explain how to run UI tests locally.
Files/Areas Likely Affected
- New test project under
tests/
src/xBeacon.Windows (optional test mode flag)
- Documentation updates for running UI tests
Notes
- Current test framework is xUnit (
tests/WinBeacon.Tests.Unit/WinBeacon.Tests.Unit.csproj).
- WinAppDriver remains a viable alternative if we need WebDriver tooling later.
Issue Description
Add Windows desktop UI automation tests for xBeacon using the existing .NET/xUnit stack. This enables local, repeatable validation of WPF/WinForms UI flows (dashboard, tray interactions, status indicators) without manual testing.
Why FlaUI (vs WinAppDriver)
dotnet testwithout extra setup.When WinAppDriver still makes sense
Proposed Implementation Plan
tests/xBeacon.Tests.UItargetingnet8.0-windowswith xUnit.FlaUI.Core,FlaUI.UIA3) and a helper to launch/attach to xBeacon.Windows.--ui-testflag or test config to run app in deterministic mode.Acceptance Criteria
Files/Areas Likely Affected
tests/src/xBeacon.Windows(optional test mode flag)Notes
tests/WinBeacon.Tests.Unit/WinBeacon.Tests.Unit.csproj).