test: Implemented unit tests to prevent regression on agent reasoning effort inheritance
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled

This commit is contained in:
2026-08-04 13:12:37 -06:00
parent 9e5e8a60f2
commit 70b6d51b55
2 changed files with 56 additions and 0 deletions
+19
View File
@@ -573,6 +573,25 @@ impl Agent {
_ => bail!("No return value from '_instructions' function"),
}
}
#[cfg(test)]
pub fn test_new(config: AgentConfig) -> Self {
Self {
name: config.name.clone(),
config,
shared_variables: Default::default(),
session_variables: None,
shared_dynamic_instructions: None,
session_dynamic_instructions: None,
functions: Functions::default(),
rag: None,
graph_rags: Default::default(),
model: Model::default(),
vault: std::sync::Arc::new(Vault::default()),
is_graph: false,
enabled_tools: None,
}
}
}
impl RoleLike for Agent {
+37
View File
@@ -4139,6 +4139,7 @@ mod tests {
use super::super::mcp_factory::McpFactory;
use super::*;
use crate::config::AppState;
use crate::config::agent::AgentConfig;
use crate::function::{ToolCall, skill};
use crate::mcp::{McpServer, McpServersConfig, McpTransportType};
use crate::utils;
@@ -4322,6 +4323,42 @@ mod tests {
assert_eq!(extracted.name(), "");
}
#[test]
fn extract_role_agent_without_reasoning_effort_inherits_app_config() {
let mut ctx = create_test_ctx();
ctx.agent = Some(Agent::test_new(AgentConfig {
name: "test-agent".to_string(),
reasoning_effort: None,
..AgentConfig::default()
}));
let app = AppConfig {
reasoning_effort: Some("max".to_string()),
..AppConfig::default()
};
let extracted = ctx.extract_role(&app).unwrap();
assert_eq!(extracted.reasoning_effort(), Some("max".to_string()));
}
#[test]
fn extract_role_agent_with_explicit_reasoning_effort_takes_priority_over_app_config() {
let mut ctx = create_test_ctx();
ctx.agent = Some(Agent::test_new(AgentConfig {
name: "test-agent".to_string(),
reasoning_effort: Some("low".to_string()),
..AgentConfig::default()
}));
let app = AppConfig {
reasoning_effort: Some("max".to_string()),
..AppConfig::default()
};
let extracted = ctx.extract_role(&app).unwrap();
assert_eq!(extracted.reasoning_effort(), Some("low".to_string()));
}
#[test]
fn should_inject_skill_instructions_requires_function_calling() {
let app = AppConfig {