()
| 777 | |
| 778 | #[test] |
| 779 | fn test_execute_plan_simple() { |
| 780 | use tempfile::tempdir; |
| 781 | |
| 782 | let dir = tempdir().unwrap(); |
| 783 | let repo = Repository::init(dir.path()).unwrap(); |
| 784 | repo.init_vault().unwrap(); |
| 785 | |
| 786 | // Store and index an entry |
| 787 | repo.vault_store( |
| 788 | "memory/auth.md", |
| 789 | atomic_core::pristine::vault::VaultEntryType::Memory, |
| 790 | b"# Authentication\nOAuth2 details\n".to_vec(), |
| 791 | r#"{"name":"auth"}"#.to_string(), |
| 792 | ) |
| 793 | .unwrap(); |
| 794 | repo.vault_index_kg("memory/auth.md").unwrap(); |
| 795 | |
| 796 | // Execute a simple search plan |
| 797 | let plan = parse_plan( |
| 798 | r#"{ |
| 799 | "steps": [ |
| 800 | {"type": "kg_search", "query": "auth", "limit": 5, "bind": "results"} |
| 801 | ] |
| 802 | }"#, |
| 803 | ) |
| 804 | .unwrap(); |
| 805 | |
| 806 | let result = execute_plan(&repo, &plan).unwrap(); |
| 807 | assert!(!result.nodes.is_empty()); |
| 808 | assert!(result.elapsed_ms < 5000); |
| 809 | assert_eq!(result.step_stats.len(), 1); |
| 810 | assert_eq!(result.step_stats[0].step_type, "kg_search"); |
| 811 | } |
| 812 | |
| 813 | #[test] |
| 814 | fn test_execute_plan_empty() { |
nothing calls this directly
no test coverage detected