diff --git a/src/app/dev/DevToys.Api/Tool/GUI/Components/IUICard.cs b/src/app/dev/DevToys.Api/Tool/GUI/Components/IUICard.cs index e70e30e60a..c3eaf01a99 100644 --- a/src/app/dev/DevToys.Api/Tool/GUI/Components/IUICard.cs +++ b/src/app/dev/DevToys.Api/Tool/GUI/Components/IUICard.cs @@ -1,7 +1,7 @@ namespace DevToys.Api; /// -/// A component that represents a empty card and for the option value. +/// A component that represents an empty card and for the option value. /// public interface IUICard : IUIElement { @@ -12,7 +12,7 @@ public interface IUICard : IUIElement } [DebuggerDisplay($"Id = {{{nameof(Id)}}}")] -internal class UICard : UIElement, IUICard +internal class UICard : UIElementWithChildren, IUICard { internal UICard(string? id, IUIElement uiElement) : base(id) @@ -22,6 +22,11 @@ internal UICard(string? id, IUIElement uiElement) } public IUIElement UIElement { get; } + + protected override IEnumerable GetChildren() + { + yield return UIElement; + } } public static partial class GUI diff --git a/src/app/tests/DevToys.UnitTests/Tool/GUI/Components/UIElementWithChildrenTests.cs b/src/app/tests/DevToys.UnitTests/Tool/GUI/Components/UIElementWithChildrenTests.cs index 13edb16620..76b56f4346 100644 --- a/src/app/tests/DevToys.UnitTests/Tool/GUI/Components/UIElementWithChildrenTests.cs +++ b/src/app/tests/DevToys.UnitTests/Tool/GUI/Components/UIElementWithChildrenTests.cs @@ -72,4 +72,18 @@ public void GetChildElementById_ReturnsFirstMatchingChild_WhenMultipleChildrenWi ); Assert.Equal(child1.Object, element.GetChildElementById("child")); } + + [Fact] + public void GetChildElementById_ReturnsChild_WhenChildIsCard() + { + var child = new Mock(); + child.Setup(c => c.Id).Returns("child-id"); + + var card = new UICard("card-id", child.Object); + + var element = new TestUIElement("parent", new List { card }); + + Assert.Equal(card, element.GetChildElementById("card-id")); + Assert.Equal(child.Object, element.GetChildElementById("child-id")); + } }