Files
temp/features/cross_plan_correction_coverage_boost.feature

51 lines
3.7 KiB
Gherkin

Feature: Cross-plan correction service — coverage boost for uncovered lines
Targets specific uncovered code paths in
cross_plan_correction_service.py that are not exercised
by existing tests: protocol body stubs, the unrecognised-state
error branch, the rejection-is-None else branch during cascade
logging, and the exception handler inside _rollback_completed_actions.
#
# Protocol body coverage (lines 60, 76, 92)
#
Scenario: ChildPlanLookup protocol body is executable via super call
When I call ChildPlanLookup protocol body through a subclass
Then the protocol body should return None
Scenario: ChildPlanCanceller protocol body is executable via super call
When I call ChildPlanCanceller protocol body through a subclass
Then the canceller protocol body should return None
Scenario: SandboxRollbacker protocol body is executable via super call
When I call SandboxRollbacker protocol body through a subclass
Then the rollbacker protocol body should return None
# ─────────────────────────────────────────────────────────────────
# classify_cascade_action with unrecognised state (line 127)
# ─────────────────────────────────────────────────────────────────
Scenario: classify_cascade_action raises ValidationError for unrecognised state
When I classify cascade action for an unrecognised state value
Then a cascade ValidationError should be raised mentioning "Unrecognised child plan state"
# ─────────────────────────────────────────────────────────────────
# execute_cascade with rejected=True but rejection=None (line 276)
# ─────────────────────────────────────────────────────────────────
Scenario: execute_cascade logs empty list when rejection is None on rejected cascade
Given a cross-plan correction service for coverage boost
And evaluate_cascade is patched to return rejected with no rejection object
When I execute a cascade for correction "C-BOOST" with child plans "CP-X"
Then the cascade result should be rejected with no rejection details
# ─────────────────────────────────────────────────────────────────
# _rollback_completed_actions exception handler (lines 412-416)
# ─────────────────────────────────────────────────────────────────
Scenario: Rollback action handles logger exception gracefully
Given a cross-plan correction service for coverage boost
And the module logger info method is patched to raise an error
When I call rollback_completed_actions with one completed action
Then the rollback should complete without raising