diff --git a/HealthMonitoring/HealthMonitoring.Tests/Reporting/DashboardModelsTests.cs b/HealthMonitoring/HealthMonitoring.Tests/Reporting/DashboardModelsTests.cs index 2c1f769..afcc66b 100644 --- a/HealthMonitoring/HealthMonitoring.Tests/Reporting/DashboardModelsTests.cs +++ b/HealthMonitoring/HealthMonitoring.Tests/Reporting/DashboardModelsTests.cs @@ -21,4 +21,32 @@ public void ServiceDashboardRow_preserves_registered_version() Assert.Equal("2.4.1", row.Version); } + + [Fact] + public void TimelineObservationSelector_returns_latest_100_in_display_order() + { + var observations = Enumerable.Range(0, 101) + .Select(index => new HealthObservation + { + ObservedAtUtc = DateTimeOffset.UtcNow.AddMinutes(index), + Status = HealthStatus.Healthy + }) + .ToArray(); + + var selected = TimelineObservationSelector.Select(observations).ToArray(); + + Assert.Equal(100, selected.Length); + Assert.Equal(observations[1].ObservedAtUtc, selected[0].ObservedAtUtc); + Assert.Equal(observations[100].ObservedAtUtc, selected[^1].ObservedAtUtc); + } + + [Fact] + public void TimelineObservationSelector_exposes_maximum_segments_as_read_only_property() + { + var property = typeof(TimelineObservationSelector).GetProperty(nameof(TimelineObservationSelector.MaximumSegments)); + + Assert.NotNull(property); + Assert.False(property!.CanWrite); + Assert.Equal(100, property.GetValue(null)); + } } diff --git a/HealthMonitoring/HealthMonitoring/Components/Pages/ServiceDetail.razor b/HealthMonitoring/HealthMonitoring/Components/Pages/ServiceDetail.razor index 78213e1..56cd831 100644 --- a/HealthMonitoring/HealthMonitoring/Components/Pages/ServiceDetail.razor +++ b/HealthMonitoring/HealthMonitoring/Components/Pages/ServiceDetail.razor @@ -11,7 +11,7 @@ else
SERVICE DETAIL · @_model.Service.Environment
@MonitorDescription
Version: @(string.IsNullOrWhiteSpace(_model.Service.Version) ? "not reported" : _model.Service.Version)
No dependency details have been returned.
} else {@(_model.Observations.FirstOrDefault()?.RawResponseJson ?? "No response recorded.")