Files
cleveragents-core/features/project_cli_coverage_r2.feature
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

62 lines
3.0 KiB
Gherkin
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Feature: Project CLI coverage round 2 remaining uncovered lines
As a developer
I want to exercise the remaining uncovered code paths in project.py
So that lines 73-76, 81-84, 89-92, 152, 164, 167, and 843 are covered
Background:
Given the r2 project CLI mocks are prepared
# ── _get_namespaced_project_repo helper (lines 73, 75, 76) ──
Scenario: _get_namespaced_project_repo returns repo from the DI container
When I call the actual _get_namespaced_project_repo helper with a mocked container
Then the r2 helper result should be the mock namespaced project repo
# ── _get_resource_link_repo helper (lines 81, 83, 84) ──
Scenario: _get_resource_link_repo returns link repo from the DI container
When I call the actual _get_resource_link_repo helper with a mocked container
Then the r2 helper result should be the mock resource link repo
# ── _get_resource_registry_service helper (lines 89, 91, 92) ──
Scenario: _get_resource_registry_service returns registry from the DI container
When I call the actual _get_resource_registry_service helper with a mocked container
Then the r2 helper result should be the mock resource registry service
# ── _project_spec_dict fallback for linked_at without isoformat (line 152) ──
Scenario: _project_spec_dict uses str fallback when linked_at has no isoformat
Given a mock project with a linked resource whose linked_at is a plain string
When I call _project_spec_dict on that project
Then the linked resource linked_at should be the plain string value
# ── _project_spec_dict fallback for created_at without isoformat (line 164) ──
Scenario: _project_spec_dict uses str fallback when created_at has no isoformat
Given a mock project whose created_at is a plain string
When I call _project_spec_dict on that project
Then the result created_at should be the plain string value
# ── _project_spec_dict fallback for updated_at without isoformat (line 167) ──
Scenario: _project_spec_dict uses str fallback when updated_at has no isoformat
Given a mock project whose updated_at is a plain string
When I call _project_spec_dict on that project
Then the result updated_at should be the plain string value
# ── Combined: all three date fallbacks in one project with linked resources ──
Scenario: _project_spec_dict handles all string dates together with linked resources
Given a mock project where all dates and linked_at are plain strings
When I call _project_spec_dict on that project
Then all date fields in the result should be plain string values
# ── list_projects rich table fallback for created_at without strftime (line 843) ──
Scenario: list command renders table when project created_at is a plain string
Given the r2 project repo returns projects with string created_at values
When I invoke the r2 CLI list command with rich format
Then the r2 CLI output should contain the truncated string date
And the r2 CLI exit code should be 0