refactor(health.akka): review polish (internal decision helper, role guard, factory results, test coverage) + fix SPEC §4 gate description

This commit is contained in:
Joseph Doherty
2026-06-01 07:04:29 -04:00
parent edbc79204f
commit 1c2b23cbbb
6 changed files with 39 additions and 13 deletions
@@ -31,7 +31,7 @@ public sealed class ActiveNodeDecisionTests
// Role-filtered: requiredRole != null.
// lacks role -> Healthy (probe irrelevant for this node)
// has role & is leader -> Healthy
// has role & is leader -> Healthy (selfUp is ignored — role-filtered mode only cares about leadership)
// has role & not leader -> Degraded
public static IEnumerable<object[]> RoleFilteredCases() => new[]
{
@@ -39,8 +39,10 @@ public sealed class ActiveNodeDecisionTests
new object[] { true, true, false, "admin", HealthStatus.Healthy },
new object[] { true, false, false, "admin", HealthStatus.Healthy },
new object[] { false, false, false, "admin", HealthStatus.Healthy },
// node carries the role and is leader -> Healthy
// node carries the role and is leader -> Healthy (selfUp=true)
new object[] { true, true, true, "admin", HealthStatus.Healthy },
// node carries the role and is leader -> Healthy (selfUp=false: role-filtered mode ignores selfUp)
new object[] { false, true, true, "admin", HealthStatus.Healthy },
// node carries the role but is not leader -> Degraded
new object[] { true, false, true, "admin", HealthStatus.Degraded },
new object[] { false, false, true, "admin", HealthStatus.Degraded },
@@ -23,6 +23,7 @@ public sealed class AkkaClusterStatusPolicyTests
new object[] { MemberStatus.WeaklyUp, HealthStatus.Unhealthy },
new object[] { MemberStatus.Down, HealthStatus.Unhealthy },
new object[] { MemberStatus.Removed, HealthStatus.Unhealthy },
new object[] { (MemberStatus)99, HealthStatus.Unhealthy }, // unknown / future status
};
[Theory]
@@ -41,6 +42,7 @@ public sealed class AkkaClusterStatusPolicyTests
new object[] { MemberStatus.WeaklyUp, HealthStatus.Degraded },
new object[] { MemberStatus.Down, HealthStatus.Degraded },
new object[] { MemberStatus.Removed, HealthStatus.Degraded },
new object[] { (MemberStatus)99, HealthStatus.Degraded }, // unknown / future status
};
[Theory]
@@ -9,7 +9,6 @@
<PackageReference Include="Microsoft.NET.Test.Sdk" />
<PackageReference Include="xunit" />
<PackageReference Include="xunit.runner.visualstudio" />
<PackageReference Include="Akka.TestKit.Xunit2" />
</ItemGroup>
<ItemGroup>