using AcDream.App.UI; using AcDream.Core.Chat; using AcDream.UI.Abstractions.Panels.SpewBox; namespace AcDream.App.Tests.UI; public sealed class SpewBoxControllerTests { [Fact] public void Controller_IsClickThroughOverlayAndDisposesFromRetainedRoot() { var root = new UiRoot { Width = 1280f, Height = 720f, }; var state = new SpewBoxState(); using (var controller = new SpewBoxController(root, new SpewBoxVM(state))) { UiText text = Assert.IsType(Assert.Single(root.Children)); Assert.False(text.Visible); Assert.True(text.ClickThrough); Assert.Equal(int.MaxValue, text.ZOrder); state.Enqueue("You can't jump while in the air"); UiText.Line line = Assert.Single(text.LinesProvider!()); Assert.Equal("You can't jump while in the air", line.Text); Assert.True(text.Visible); } Assert.Empty(root.Children); } [Fact] public void Controller_NoContent_LeavesTextHiddenWithEmptyLines() { var root = new UiRoot { Width = 1280f, Height = 720f }; using var controller = new SpewBoxController(root, new SpewBoxVM(new SpewBoxState())); UiText text = Assert.IsType(Assert.Single(root.Children)); Assert.Empty(text.LinesProvider!()); Assert.False(text.Visible); } }