3a2b134f3c
CI / lint (pull_request) Successful in 14s
CI / benchmark-publish (pull_request) Has been skipped
CI / quality (pull_request) Successful in 27s
CI / typecheck (pull_request) Successful in 37s
CI / security (pull_request) Successful in 39s
CI / build (pull_request) Successful in 29s
CI / integration_tests (pull_request) Successful in 5m51s
CI / benchmark-regression (pull_request) Successful in 22m39s
CI / unit_tests (pull_request) Successful in 29m35s
CI / docker (pull_request) Successful in 13s
CI / coverage (pull_request) Successful in 2h3m1s
CI / lint (push) Successful in 21s
CI / typecheck (push) Successful in 57s
CI / security (push) Successful in 51s
CI / quality (push) Successful in 27s
CI / integration_tests (push) Successful in 4m59s
CI / build (push) Successful in 23s
CI / benchmark-publish (push) Successful in 14m39s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 29m48s
CI / docker (push) Successful in 15s
CI / coverage (push) Successful in 1h45m42s
Added Behave BDD feature files and step definitions targeting coverage gaps in six modules: - container.py: exercise get_database_url env-var fallback, AI provider None path, cached container singleton, override_providers edge cases (lines 66-69, 125-130; branches at 51, 57, 82, 87, 256, 284-288) - correction_service.py: exercise exception-handling paths in execute_revert and execute_append via monkeypatched analyze_impact and ULID failures (lines 254-262, 320-328) - plan_lifecycle_service.py: exercise _persisted UoW commit paths, InvalidPhaseTransitionError custom message branch, non-reusable action archive, and error_details merge logic (branches at 100, 216, 237, 327, 461, 570, 576, 607) - plan.py (CLI): exercise spec-dict optional field branches, _print_lifecycle_plan conditional rendering, use_action argument parsing, auto-resolve paths, legacy wrappers, and validation error branches across 66 scenarios - skill.py (CLI): exercise singleton cache, timestamp-absent show, no-tools MCP, add/remove/list/show format and error branches across 26 scenarios - models.py (DB): exercise to_domain/from_domain None-field branches in SkillModel, SessionModel, ToolModel, LifecycleActionModel, LifecyclePlanModel, NamespacedProjectModel, and SessionMessageModel across 41 scenarios All 302 features, 6503 scenarios, 28271 steps pass (nox -e unit_tests). ISSUES CLOSED: #446
81 lines
3.9 KiB
Gherkin
81 lines
3.9 KiB
Gherkin
Feature: Plan CLI legacy wrappers and resolve branch coverage (round 2)
|
||
As a developer
|
||
I want to exercise uncovered branches in legacy wrappers and _resolve_active_plan_id
|
||
So that branch coverage for legacy and resolve logic rises above the current level
|
||
|
||
# ===================================================================
|
||
# Legacy programmatic wrappers – no project branch
|
||
# ===================================================================
|
||
|
||
Scenario: r2plan tell_command raises when no project
|
||
When r2plan-I call tell_command with no project
|
||
Then r2plan-a CleverAgentsError should be raised with message "No project found"
|
||
|
||
Scenario: r2plan build_command raises when no project
|
||
When r2plan-I call build_command with no project
|
||
Then r2plan-a CleverAgentsError should be raised with message "No project found"
|
||
|
||
Scenario: r2plan apply_command raises when no project
|
||
When r2plan-I call apply_command with no project
|
||
Then r2plan-a CleverAgentsError should be raised with message "No project found"
|
||
|
||
Scenario: r2plan new_command raises when no project
|
||
When r2plan-I call new_command with no project
|
||
Then r2plan-a CleverAgentsError should be raised with message "No project found"
|
||
|
||
Scenario: r2plan current_command raises when no project
|
||
When r2plan-I call current_command with no project
|
||
Then r2plan-a CleverAgentsError should be raised with message "No project found"
|
||
|
||
Scenario: r2plan list_command raises when no project
|
||
When r2plan-I call list_command with no project
|
||
Then r2plan-a CleverAgentsError should be raised with message "No project found"
|
||
|
||
Scenario: r2plan cd_command raises when no project
|
||
When r2plan-I call cd_command with no project
|
||
Then r2plan-a CleverAgentsError should be raised with message "No project found"
|
||
|
||
Scenario: r2plan continue_command raises when no project
|
||
When r2plan-I call continue_command with no project
|
||
Then r2plan-a CleverAgentsError should be raised with message "No project found"
|
||
|
||
# ===================================================================
|
||
# continue_command – with prompt vs no-prompt + no current plan
|
||
# ===================================================================
|
||
|
||
Scenario: r2plan continue_command with prompt calls continue_plan
|
||
When r2plan-I call continue_command with prompt "add tests"
|
||
Then r2plan-the continue_plan service method should be called
|
||
|
||
Scenario: r2plan continue_command no prompt and no current plan raises
|
||
When r2plan-I call continue_command with no prompt and no current plan
|
||
Then r2plan-a CleverAgentsError should be raised with message "No current plan"
|
||
|
||
# ===================================================================
|
||
# build_command – returns empty list when changes is None
|
||
# ===================================================================
|
||
|
||
Scenario: r2plan build_command returns empty list when None
|
||
When r2plan-I call build_command with build returning None
|
||
Then r2plan-the build result should be an empty list
|
||
|
||
# ===================================================================
|
||
# list_command – returns empty list when plans is None
|
||
# ===================================================================
|
||
|
||
Scenario: r2plan list_command returns empty list when None
|
||
When r2plan-I call list_command with list returning None
|
||
Then r2plan-the list result should be an empty list
|
||
|
||
# ===================================================================
|
||
# _resolve_active_plan_id – no active plans / service error
|
||
# ===================================================================
|
||
|
||
Scenario: r2plan resolve_active_plan_id aborts when no active plans
|
||
When r2plan-I call _resolve_active_plan_id with no active plans
|
||
Then r2plan-a typer Abort should be raised
|
||
|
||
Scenario: r2plan resolve_active_plan_id aborts on service error
|
||
When r2plan-I call _resolve_active_plan_id with service error
|
||
Then r2plan-a typer Abort should be raised
|