using Bunit; using Marathon.UI.Pages; using Marathon.UI.Tests.Support; namespace Marathon.UI.Tests.Pages; public sealed class PreMatchTests : MarathonTestContext { [Fact] public void Renders_seeded_rows() { Browsing.SportCodes.AddRange(new[] { 6, 11 }); Browsing.UpcomingItems.AddRange(new[] { TestData.ListItem(id: "EV-1", side1: "Arsenal", side2: "Chelsea"), TestData.ListItem(id: "EV-2", side1: "Lakers", side2: "Bulls", sport: 6), }); var cut = RenderComponent(); cut.WaitForAssertion(() => { var rows = cut.FindAll("[data-test=event-row]"); rows.Count.Should().Be(2); }); cut.Markup.Should().Contain("Arsenal"); cut.Markup.Should().Contain("Lakers"); } [Fact] public void Renders_empty_state_when_no_events() { var cut = RenderComponent(); cut.WaitForAssertion(() => { cut.Markup.Should().Contain("PreMatch.Empty"); }); } [Fact] public void Calls_loader_with_active_filter_dates() { Browsing.UpcomingItems.Add(TestData.ListItem()); var cut = RenderComponent(); cut.WaitForAssertion(() => { Browsing.UpcomingCallCount.Should().BeGreaterThan(0); Browsing.LastUpcomingFilter.Should().NotBeNull(); Browsing.LastUpcomingFilter!.Dates.From.Should().BeBefore(Browsing.LastUpcomingFilter.Dates.To); }); } }