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

43 lines
2.1 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: LangGraph nodes coverage boost
Scenarios targeting specific uncovered lines in nodes.py
# Line 130 execute() else branch when NodeType is unrecognised
Scenario: Unknown node type falls through to empty result
Given a node whose type is patched to an unrecognised value
When I execute the unknown-type node
Then the result should contain current_node and nothing else
# Line 176 ToolAgent branch with empty current_message falls back to last message
Scenario: ToolAgent with empty current_message falls back to last message content
Given a ToolAgent node with an empty current_message and messages in state
When I execute the ToolAgent fallback node
Then the ToolAgent should receive the last message content as input
# Line 270 _execute_function raises when function is not callable
Scenario: Function node raises when the registered object is not callable
Given a function node whose registered object is not callable
When I execute the non-callable function node
Then the result should report a not-callable error
# Lines 319, 321-322 message router rules with null target / null condition
Scenario: Message router skips rules with null target
Given a message router with a rule that has no target
When I execute the null-target router
Then the router should return routed_to as None
Scenario: Message router matches unconditional rule
Given a message router with an unconditional rule targeting "default_dest"
When I execute the unconditional router
Then the router should route to "default_dest"
Scenario: Message router skips null-target then matches unconditional rule
Given a message router with a null-target rule followed by an unconditional rule to "fallback"
When I execute the mixed-rules router
Then the router should route to "fallback"
# Line 337 evaluate_edge_condition returns True for edge without condition
Scenario: Edge without condition evaluates to true
Given an edge with no condition
When I evaluate the unconditioned edge
Then the edge evaluation should return true