feat(health): metrics-stale signal + status-transition timestamps; spec now matches heartbeat-liveness code
This commit is contained in:
+23
@@ -70,4 +70,27 @@ public class HealthMonitoringOptionsValidatorTests
|
||||
Assert.True(result.Failed);
|
||||
Assert.Contains("CentralOfflineTimeout", result.FailureMessage);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ZeroMetricsStaleTimeout_IsRejected()
|
||||
{
|
||||
var result = Validate(new HealthMonitoringOptions { MetricsStaleTimeout = TimeSpan.Zero });
|
||||
|
||||
Assert.True(result.Failed);
|
||||
Assert.Contains("MetricsStaleTimeout", result.FailureMessage);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void MetricsStaleTimeout_ShorterThanReportInterval_IsRejected()
|
||||
{
|
||||
// A stale window shorter than one report interval flags every site.
|
||||
var result = Validate(new HealthMonitoringOptions
|
||||
{
|
||||
ReportInterval = TimeSpan.FromSeconds(30),
|
||||
MetricsStaleTimeout = TimeSpan.FromSeconds(10)
|
||||
});
|
||||
|
||||
Assert.True(result.Failed);
|
||||
Assert.Contains("MetricsStaleTimeout", result.FailureMessage);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user