using Bunit;
using Microsoft.AspNetCore.Components;
using ZB.MOM.WW.ScadaBridge.CentralUI.Components.Shared;
namespace ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Shared;
/// Control names remain associated as search and selection values change.
public class ControlLabelTests : BunitContext
{
/// Visible DataTable search label targets its instance-specific input.
[Fact]
public void TableSearch_HasAssociatedLabelAfterTyping()
{
var cut = Render>(p => p.Add(c => c.Items, new[] { "one", "two" })
.Add(c => c.ShowSearch, true).Add(c => c.HeaderContent, (RenderFragment)(b => b.AddContent(0, "Value")))
.Add(c => c.RowContent, (RenderFragment)(v => b => b.AddContent(0, v))));
var input = cut.Find("input");
Assert.False(string.IsNullOrEmpty(input.Id));
Assert.Equal("Search", cut.Find("label[for='" + input.Id + "']").TextContent.Trim());
input.Input("one");
Assert.NotNull(cut.Find("label[for='" + cut.Find("input").Id + "']"));
}
}