Skip to content

Commit a6e321b

Browse files
test(connection): add missing DeriveOverall edge-case coverage
Add 6 new [InlineData] entries to the existing DeriveOverall_ReturnsCorrectState theory in ConnectionStateMachineTests.cs that were not previously covered: - Connected + Error/PairingRejected/RateLimited + nodeEnabled=false → Ready (node errors are suppressed when node mode is disabled; was only tested for nodeEnabled=true) - Connected + Connecting + nodeEnabled=false → Ready (node-connecting state is ignored when node is disabled) - Connected + Idle + nodeEnabled=true → Connected (fallthrough case: operator is connected, node not yet started — real startup state, reached the last "if (op == Connected) return Connected" branch) - Connected + PairingRequired + nodeEnabled=false → PairingRequired (node pairing requirement surfaces regardless of nodeEnabled) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent f52b829 commit a6e321b

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

tests/OpenClaw.Connection.Tests/ConnectionStateMachineTests.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,16 @@ public void Reset_ReturnsToIdle()
368368
[InlineData(RoleConnectionState.Connected, RoleConnectionState.Connecting, true, OverallConnectionState.Connecting)]
369369
[InlineData(RoleConnectionState.Connected, RoleConnectionState.Idle, false, OverallConnectionState.Ready)]
370370
[InlineData(RoleConnectionState.Idle, RoleConnectionState.Idle, true, OverallConnectionState.Idle)]
371+
// Node errors are suppressed when node mode is disabled → Ready (not Degraded).
372+
[InlineData(RoleConnectionState.Connected, RoleConnectionState.Error, false, OverallConnectionState.Ready)]
373+
[InlineData(RoleConnectionState.Connected, RoleConnectionState.PairingRejected, false, OverallConnectionState.Ready)]
374+
[InlineData(RoleConnectionState.Connected, RoleConnectionState.RateLimited, false, OverallConnectionState.Ready)]
375+
// Node connecting is ignored when node mode is disabled → Ready (not Connecting).
376+
[InlineData(RoleConnectionState.Connected, RoleConnectionState.Connecting, false, OverallConnectionState.Ready)]
377+
// Operator connected, node idle, node enabled → operator-only connected (fallthrough).
378+
[InlineData(RoleConnectionState.Connected, RoleConnectionState.Idle, true, OverallConnectionState.Connected)]
379+
// Node PairingRequired is reported regardless of nodeEnabled.
380+
[InlineData(RoleConnectionState.Connected, RoleConnectionState.PairingRequired, false, OverallConnectionState.PairingRequired)]
371381
public void DeriveOverall_ReturnsCorrectState(
372382
RoleConnectionState op, RoleConnectionState node, bool nodeEnabled, OverallConnectionState expected)
373383
{

0 commit comments

Comments
 (0)