Files
owlen/crates/owlen-core/tests/presets.rs
vikingowl 1994367a2e feat(mcp): add tool presets and audit commands
- Introduce reference MCP presets with installation/audit helpers and remove legacy connector lists.
- Add CLI `owlen tools` commands to install presets or audit configuration, with optional pruning.
- Extend the TUI :tools command to support listing presets, installing them, and auditing current configuration.
- Document the preset workflow and provide regression tests for preset application.
2025-10-25 05:39:58 +02:00

62 lines
1.8 KiB
Rust

use owlen_core::config::Config;
use owlen_core::mcp::presets::{PresetTier, apply_preset, audit_preset};
#[test]
fn standard_preset_produces_spec_compliant_servers() {
let configs = Config::preset_servers(PresetTier::Standard);
assert!(
!configs.is_empty(),
"expected standard preset to contain connectors"
);
for server in configs {
assert!(
server
.name
.chars()
.all(|c| c.is_ascii_alphanumeric() || c == '_' || c == '-'),
"server '{}' failed identifier validation",
server.name
);
}
}
#[test]
fn apply_preset_adds_missing_servers() {
let mut config = Config::default();
let report = apply_preset(&mut config, PresetTier::Standard, false).expect("apply preset");
assert!(!report.added.is_empty(), "expected connectors to be added");
assert!(report.updated.is_empty());
assert!(report.removed.is_empty());
let audit = audit_preset(&config, PresetTier::Standard);
assert!(
audit.missing.is_empty(),
"expected no missing connectors after install"
);
}
#[test]
fn prune_preset_removes_extra_entries() {
let mut config = Config::default();
// Seed with an extra entry
config
.mcp_servers
.push(owlen_core::config::McpServerConfig {
name: "custom_tool".into(),
command: "custom-cmd".into(),
args: vec![],
transport: "stdio".into(),
env: Default::default(),
oauth: None,
});
let report = apply_preset(&mut config, PresetTier::Standard, true).expect("apply preset");
assert!(report.removed.contains(&"custom_tool".to_string()));
assert!(
config
.mcp_servers
.iter()
.all(|srv| srv.name != "custom_tool")
);
}