using Bunit; using Marathon.UI.Pages; using Marathon.UI.Services; using Marathon.UI.Tests.Support; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; namespace Marathon.UI.Tests.Pages; public sealed class LiveTests : MarathonTestContext { public LiveTests() { var monitor = new TestOptionsMonitor(new ScrapingSettingsForm { PollingIntervalSeconds = 30, }); Services.AddSingleton>(monitor); } [Fact] public void Reads_polling_interval_from_options_monitor() { Browsing.LiveItems.Add(TestData.ListItem(id: "LV-1")); var cut = RenderComponent(); cut.WaitForAssertion(() => { // Live.AutoRefresh badge surfaces the configured cadence. cut.Markup.Should().Contain("Live.AutoRefresh"); cut.Markup.Should().Contain("30 s"); }); } [Fact] public void Renders_seeded_live_rows() { Browsing.LiveItems.AddRange(new[] { TestData.ListItem(id: "LV-1", side1: "Roma", side2: "Lazio"), TestData.ListItem(id: "LV-2", side1: "Federer", side2: "Nadal", sport: 22723), }); var cut = RenderComponent(); cut.WaitForAssertion(() => { cut.FindAll("[data-test=event-row]").Count.Should().Be(2); }); cut.Markup.Should().Contain("Roma"); cut.Markup.Should().Contain("Federer"); } }