Files
cleveragents-core/features/context_service_analysis.feature
brent.edwards 17fe46d925
CI / lint (pull_request) Successful in 18s
CI / typecheck (pull_request) Successful in 26s
CI / security (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 14s
CI / build (pull_request) Successful in 12s
CI / behave (3.13) (pull_request) Failing after 3m50s
CI / docker (pull_request) Has been skipped
CI / helm (pull_request) Has been skipped
CI / coverage (pull_request) Failing after 4m20s
test(behave): fix behave tests
There had been over 100 behave tests failing. There should be none failing now.
2026-02-12 04:47:02 +00:00

166 lines
6.3 KiB
Gherkin

Feature: Context Service Analysis Integration
As a developer using CleverAgents
I want to analyze context files using LangGraph workflows
So that I can understand the codebase better before making changes
# TODO: Uncomment when step definitions are implemented
# Background:
# Given I have initialized a CleverAgents project
# And I have a context service with LangGraph integration
#
# Scenario: Analyze context when no files are loaded
# Given the current plan has no context files
# When I analyze the context
# Then the analysis result should have empty documents
# And the analysis summary should indicate no files to analyze
# And there should be no error in the analysis
#
# Scenario: Analyze context with a single Python file
# Given I have a Python file "main.py" with content:
# """
# import os
# import sys
# from pathlib import Path
#
# def main():
# print("Hello, World!")
# """
# And I have added "main.py" to the LangGraph context
# When I analyze the context
# Then the analysis result should have 1 document
# And the dependencies for "main.py" should include "os"
# And the relevance score for "main.py" should be between 0.0 and 1.0
# And the summary should not be empty
#
# Scenario: Analyze context with multiple files
# Given I have a Python file "utils.py" with content:
# """
# def helper():
# return 42
# """
# And I have a Python file "app.py" with content:
# """
# from utils import helper
# print(helper())
# """
# And I have added "utils.py" to the LangGraph context
# And I have added "app.py" to the LangGraph context
# When I analyze the context
# Then the analysis result should have 2 documents
# And the dependencies should include entries for both files
# And the relevance scores should have entries for both files
#
# Scenario: Get context summary
# Given I have a Python file "sample.py" with content:
# """
# # Sample module
# class Sample:
# pass
# """
# And I have added "sample.py" to the LangGraph context
# When I get the context summary
# Then the summary should be a non-empty string
# And the summary should not indicate an error
#
# Scenario: Get context dependencies
# Given I have a Python file "deps.py" with content:
# """
# import json
# import requests
# from typing import Dict
# """
# And I have added "deps.py" to the LangGraph context
# When I get the context dependencies
# Then the dependencies dict should have an entry for "deps.py"
# And the dependencies should be a non-empty list
#
# Scenario: Get relevant files with threshold
# Given I have a Python file "important.py" with content:
# """
# # Core business logic
# def critical_function():
# return "important"
# """
# And I have a Python file "trivial.py" with content:
# """
# # Just comments
# pass
# """
# And I have added "important.py" to the LangGraph context
# And I have added "trivial.py" to the LangGraph context
# When I get relevant files with threshold 0.0
# Then the result should include both files with scores
# And all LangGraph scores should be between 0.0 and 1.0
#
# Scenario: Stream context analysis
# Given I have a Python file "streaming.py" with content:
# """
# print("test streaming")
# """
# And I have added "streaming.py" to the LangGraph context
# When I stream the context analysis
# Then I should receive multiple events
# And the events should include node execution results
#
# Scenario: Stream context analysis when no files are loaded
# Given the current plan has no context files
# When I stream the context analysis
# Then the streaming output should report no files to analyze
#
# Scenario: Analyze context asynchronously
#
# Given I have a Python file "async_test.py" with content:
# """
# async def async_func():
# return "async"
# """
# And I have added "async_test.py" to the LangGraph context
# When I analyze the context asynchronously
# Then the async result should have documents
# And the async result should have a summary
# And there should be no error in the async result
#
# Scenario: Analyze context asynchronously when no files are loaded
# Given the current plan has no context files
# When I analyze the context asynchronously
# Then the async analysis result should have empty documents
# And the async analysis summary should indicate no files to analyze
#
# Scenario: Stream context analysis asynchronously with loaded files
# Given I have a Python file "async_stream.py" with content:
# """
# print("async stream")
# """
# And I have added "async_stream.py" to the LangGraph context
# When I stream the context analysis asynchronously
# Then the async streaming events should include node execution results
#
# Scenario: Stream context analysis asynchronously with no files
# Given the current plan has no context files
# When I stream the context analysis asynchronously
# Then the async streaming output should report no files to analyze
#
# Scenario: Handle non-existent files gracefully
# Given I have added a non-existent file path to the analysis
#
#
# When I analyze the context with the non-existent path
# Then the analysis should complete without raising an exception
# And the error field should contain file not found information
#
# Scenario: Get context agent instance
# When I request a context analysis agent
# Then I should receive a ContextAnalysisAgent instance
# And the agent should have the standard workflow nodes
#
# Scenario: Prepare LangSmith metadata when tracing is enabled
# Given LangSmith tracing is enabled for context analysis metadata
# And I have a Python file "langsmith.py" with content:
# """
# print("langsmith tracing")
# """
# And I have added "langsmith.py" to the LangGraph context
# When I prepare the LangGraph analysis config for run "LangSmithRun" in "stream" mode
# Then the LangSmith config should include the current project metadata
# And the LangSmith config should record 1 context file path