feat: refactor sgclaw around zeroclaw compat runtime
This commit is contained in:
42
tests/compat_memory_test.rs
Normal file
42
tests/compat_memory_test.rs
Normal file
@@ -0,0 +1,42 @@
|
||||
use std::path::{Path, PathBuf};
|
||||
|
||||
use sgclaw::compat::config_adapter::build_zeroclaw_config_from_settings;
|
||||
use sgclaw::config::DeepSeekSettings;
|
||||
use zeroclaw::memory::MemoryCategory;
|
||||
|
||||
fn workspace_root(label: &str) -> PathBuf {
|
||||
let root = std::env::temp_dir().join(format!("{label}-{}", uuid::Uuid::new_v4()));
|
||||
std::fs::create_dir_all(&root).unwrap();
|
||||
root
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn compat_memory_adapter_uses_workspace_local_sqlite_backend() {
|
||||
let settings = DeepSeekSettings {
|
||||
api_key: "key".to_string(),
|
||||
base_url: "https://api.deepseek.com".to_string(),
|
||||
model: "deepseek-chat".to_string(),
|
||||
};
|
||||
let workspace_root = workspace_root("sgclaw-memory");
|
||||
let config = build_zeroclaw_config_from_settings(Path::new(&workspace_root), &settings);
|
||||
|
||||
assert_eq!(config.memory.backend, "sqlite");
|
||||
assert_eq!(config.memory.embedding_provider, "none");
|
||||
assert!(!config.memory.response_cache_enabled);
|
||||
assert!(!config.memory.snapshot_enabled);
|
||||
assert!(config.storage.provider.config.provider.is_empty());
|
||||
|
||||
let memory = sgclaw::compat::memory_adapter::build_memory(&config).unwrap();
|
||||
memory
|
||||
.store(
|
||||
"weather",
|
||||
"remember today's weather workflow",
|
||||
MemoryCategory::Conversation,
|
||||
None,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
assert_eq!(memory.count().await.unwrap(), 1);
|
||||
assert!(sgclaw::compat::memory_adapter::brain_db_path(&config.workspace_dir).exists());
|
||||
}
|
||||
Reference in New Issue
Block a user