using AcDream.App.UI; using Xunit; namespace AcDream.App.Tests.UI; /// /// End-to-end click routing for a markup-built plugin panel: press and release /// over the button, through the real dispatcher, and /// assert the bound action ran. /// /// /// Written because a MossTank panel rendered correctly in world and its Buff /// button did nothing when clicked. Unit-testing the markup builder proved the /// handler was bound; only driving the actual pointer path can show whether the /// click reaches it. /// public class MarkupPanelClickTests { private sealed class Binding { public int Clicks { get; private set; } public Action Go => () => Clicks++; public bool Shown { get; set; } = true; public string Status => "ok"; } private const string Markup = "" + "