client/systray: fix crash when suggested exit node has no location
The suggest-exit-node LocalAPI response omits the Location field when the suggested exit node has no location, such as a regular tailnet exit node. Building the exit node menu called CountryCode and City on the invalid view unconditionally, crashing the app on startup. The crash was introduced in aa21b0c00 (#19627), which added those calls. Add an integration test that starts the systray app against a private dbus session bus, a fake StatusNotifierWatcher, and a fake LocalAPI serving such a suggestion, then verifies the StatusNotifierItem is registered and the initial menu is built. On Linux the systray is pure dbus (StatusNotifierItem and dbusmenu), so no X server or desktop environment is needed and the test runs in existing CI. Fixes #20678 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com> Change-Id: I262ae0f724cb7c41aa0f531fcbded967e5bee432
B
Brad Fitzpatrick committed
77948cdce4bfffa0aaebe40b3875813776ae41bc
Parent: 3799eaf
Committed by Brad Fitzpatrick <brad@danga.com>
on 7/30/2026, 2:55:18 PM