use mem_store::{EventRecord, LogWriter}; use serde_json::json; use std::fs; #[test] fn a1_log_writes_jsonl() { let _ = fs::remove_dir_all("log/test/q1"); let mut writer = LogWriter::new("test", "q1", "run1").unwrap(); writer.log(EventRecord { project: "test".to_string(), query: "q1".to_string(), run: "run1".to_string(), turn: 1, event_type: "evidence".to_string(), data: json!({"chunk": "abc"}), }).unwrap(); writer.log(EventRecord { project: "test".to_string(), query: "q1".to_string(), run: "run1".to_string(), turn: 2, event_type: "memory".to_string(), data: json!({"text": "test"}), }).unwrap(); let events = writer.read_all().unwrap(); assert_eq!(events.len(), 2); assert_eq!(events[0].turn, 1); assert_eq!(events[1].turn, 2); let _ = fs::remove_dir_all("log/test/q1"); } #[test] fn a2_log_idempotent() { let _ = fs::remove_dir_all("log/test/q2"); let mut writer = LogWriter::new("test", "q2", "run2").unwrap(); writer.log(EventRecord { project: "test".to_string(), query: "q2".to_string(), run: "run2".to_string(), turn: 1, event_type: "test".to_string(), data: json!({"k": "v"}), }).unwrap(); let events1 = writer.read_all().unwrap(); let events2 = writer.read_all().unwrap(); assert_eq!(events1, events2); let _ = fs::remove_dir_all("log/test/q2"); }