Files
cleveragents-core/features/project_context_cli_coverage_boost.feature
T
freemo a808c395f9
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / build (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 17s
CI / typecheck (pull_request) Successful in 35s
CI / security (pull_request) Successful in 50s
CI / unit_tests (pull_request) Successful in 2m46s
CI / integration_tests (pull_request) Successful in 3m16s
CI / docker (pull_request) Successful in 40s
CI / coverage (pull_request) Successful in 5m6s
CI / lint (push) Successful in 13s
CI / quality (push) Successful in 16s
CI / build (push) Successful in 18s
CI / security (push) Successful in 32s
CI / typecheck (push) Successful in 35s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 2m52s
CI / integration_tests (push) Successful in 3m8s
CI / docker (push) Successful in 39s
CI / coverage (push) Successful in 5m53s
CI / benchmark-publish (push) Successful in 16m55s
CI / benchmark-regression (pull_request) Successful in 33m0s
test(coverage): add Behave BDD tests to improve unit test coverage across 53 source modules
Add 53 new .feature files and corresponding step definition files targeting
uncovered lines identified in build/coverage.xml. Fix AmbiguousStep conflicts
in 7 pre-existing step files by disambiguating step text.

New tests cover: ACP clients/facade, actor CLI/config, application container,
ACMS service/strategies, async worker, automation profile CLI, autonomy
guardrail, bridge, change model, config CLI/service, context service,
cross-plan correction, database models, decision service, decomposition
clustering/service, discovery handler, langchain chat provider, langgraph
nodes, materializers, multi-project service, plan apply/CLI/lifecycle/model/
preflight/resume/service, PostgreSQL analyzer, project CLI/context CLI,
provider registry, reactive application/route, repositories, resolver handler,
resource registry service, resume model, retry patterns, sandbox protocol,
server CLI, skill CLI/service, skills registry, subplan execution/service,
system CLI, UKO loader, UoW, and YAML template engine.

Closes #645
2026-03-09 13:01:58 -04:00

143 lines
7.8 KiB
Gherkin

Feature: Project context CLI coverage boost
Additional Behave scenarios targeting uncovered lines in
src/cleveragents/cli/commands/project_context.py.
Background:
Given a coverage-boost in-memory database is initialized
And a project "local/cov-app" exists for coverage boost
# --- _load_policy_json returns None (line 106) ---
# --- _read_policy returns default when raw is None (line 145) ---
# --- _read_acms_config returns defaults when raw is None (line 164) ---
Scenario: Reading policy from a fresh project returns defaults
When I read the stored policy for "local/cov-app"
Then the policy should be a fresh default policy
And the ACMS config should equal the defaults
# --- _write_policy preserves existing ACMS config (lines 199-201) ---
Scenario: Writing policy without acms_config preserves existing ACMS config
Given I seed ACMS config for "local/cov-app" with hot_max_tokens 9999
When I write a policy for "local/cov-app" without explicit ACMS config
Then the stored project-context ACMS config hot_max_tokens should be 9999
# --- clear default view resets to empty ContextView (line 574) ---
Scenario: Clearing the default view resets it
When I run coverage-boost context set on "local/cov-app" with view "default" and include-resource "keep-me"
And I run coverage-boost context set on "local/cov-app" with view "default" and clear flag
Then the coverage-boost command should succeed
And the stored coverage-boost default view include_resources should be empty
# --- default_depth as non-integer string (lines 609-610) ---
Scenario: Setting default_depth to a non-integer string keeps it as string
When I run coverage-boost context set on "local/cov-app" with default_depth "deep"
Then the coverage-boost command should succeed
And the stored ACMS config default_depth should be "deep"
# --- execution_environment valid (lines 628-648) ---
Scenario: Setting a valid execution environment persists it
When I run coverage-boost context set on "local/cov-app" with execution_environment "host"
Then the coverage-boost command should succeed
And the stored execution_environment should be "host"
# --- execution_environment invalid (lines 632-638) ---
Scenario: Setting an invalid execution environment fails
When I run coverage-boost context set on "local/cov-app" with execution_environment "spaceship"
Then the coverage-boost command should have exit code 1
And the coverage-boost output should contain "Invalid execution environment"
# --- non-rich output format for context_set (line 663) ---
Scenario: Context set with JSON output format
When I run coverage-boost context set on "local/cov-app" with view "default" include-resource "res1" and format "json"
Then the coverage-boost command should succeed
And the coverage-boost output should be valid JSON
# --- invalid view in context_show (lines 704-707) ---
Scenario: Context show with invalid view fails
When I run coverage-boost context show on "local/cov-app" with view "bogus"
Then the coverage-boost command should have exit code 1
And the coverage-boost output should contain "Invalid view"
# --- strategy_filter in context_inspect (lines 874-878) ---
Scenario: Context inspect with strategy filter narrows fragments
Given the tier service has fragments for "local/cov-app" with strategy metadata
When I run coverage-boost context inspect on "local/cov-app" with strategy filter "tier_a"
Then the coverage-boost command should succeed
# --- focus filter in context_inspect (lines 882-885) ---
Scenario: Context inspect with focus filter narrows fragments
Given the tier service has fragments for "local/cov-app" with strategy metadata
When I run coverage-boost context inspect on "local/cov-app" with focus "res:file-alpha"
Then the coverage-boost command should succeed
# --- breadth/depth override in context_inspect (lines 897-902) ---
Scenario: Context inspect with breadth and depth overrides
When I run coverage-boost context inspect on "local/cov-app" with breadth 5 and depth "detailed"
Then the coverage-boost command should succeed
# --- inspect with view set appends phase to title (line 937) ---
Scenario: Context inspect with view set
When I run coverage-boost context inspect on "local/cov-app" with view "execute"
Then the coverage-boost command should succeed
And the coverage-boost output should contain "execute"
# --- temporal scope "recent" and "all" in simulate (lines 301, 303) ---
Scenario: Simulate with temporal scope recent
Given I seed ACMS config for "local/cov-app" with temporal_scope "recent"
When I run coverage-boost context simulate on "local/cov-app" with defaults
Then the coverage-boost command should succeed
Scenario: Simulate with temporal scope all
Given I seed ACMS config for "local/cov-app" with temporal_scope "all"
When I run coverage-boost context simulate on "local/cov-app" with defaults
Then the coverage-boost command should succeed
# --- budget exceeded breaks loop (line 335), long content truncation (line 339),
# access_count > 0 relevance (line 344) ---
Scenario: Simulate truncates fragments exceeding budget and handles long content
Given the tier service has large fragments for "local/cov-app" exceeding budget
When I run coverage-boost context simulate on "local/cov-app" with budget 100
Then the coverage-boost command should succeed
And the simulation should have fewer fragments than stored
# --- simulate with fragments renders rich table (lines 1085-1101) ---
Scenario: Simulate with fragments shows rich table output
Given the tier service has fragments for "local/cov-app" with strategy metadata
When I run coverage-boost context simulate on "local/cov-app" in rich format
Then the coverage-boost command should succeed
And the coverage-boost output should contain "Assembled Fragments"
# --- invalid temporal_scope in context_set (lines 614-619) ---
Scenario: Setting an invalid temporal scope fails
When I run coverage-boost context set on "local/cov-app" with temporal_scope "never"
Then the coverage-boost command should have exit code 1
And the coverage-boost output should contain "Invalid temporal scope"
# --- context inspect with invalid view (lines 844-848) ---
Scenario: Context inspect with invalid view fails
When I run coverage-boost context inspect on "local/cov-app" with view "bogus"
Then the coverage-boost command should have exit code 1
And the coverage-boost output should contain "Invalid view"
# --- context simulate with invalid view (lines 1032-1036) ---
Scenario: Context simulate with invalid view fails
When I run coverage-boost context simulate on "local/cov-app" with view "bogus"
Then the coverage-boost command should have exit code 1
And the coverage-boost output should contain "Invalid view"
# --- simulate with focus_uris filtering (lines 322-328) ---
Scenario: Simulate with focus URIs filters fragments
Given the tier service has fragments for "local/cov-app" with strategy metadata
When I run coverage-boost context simulate on "local/cov-app" with focus "res:file-alpha"
Then the coverage-boost command should succeed
# --- simulate with strategy_hints (line 293, 361) ---
Scenario: Simulate with strategy hints
When I run coverage-boost context simulate on "local/cov-app" with strategy hints "bfs,dfs"
Then the coverage-boost command should succeed
# --- context_set ACMS overrides for remaining fields (lines 589-622) ---
Scenario: Context set with all ACMS pipeline overrides
When I run coverage-boost context set on "local/cov-app" with all ACMS overrides
Then the coverage-boost command should succeed
And the stored ACMS config should reflect all overrides