use sqlitegraph::backend::native::{
GraphFile, NativeResult, node_store::NodeStore, v2::node_record_v2::NodeRecordV2,
};
use tempfile::tempdir;
#[test]
fn test_trigger_debug_rebuild_output() -> NativeResult<()> {
let temp_dir =
tempdir().map_err(|e| sqlitegraph::backend::native::NativeBackendError::Io(e))?;
let db_path = temp_dir.path().join("test.db");
let mut graph_file = GraphFile::create(&db_path)?;
let node_record_v2 = NodeRecordV2::new(
1i64,
"test".to_string(),
"test_node".to_string(),
serde_json::json!({}),
);
let buffer = node_record_v2.serialize();
println!(
"DEBUG: Created V2 node record, first 16 bytes: {:?}",
&buffer[..16]
);
let node_data_offset = graph_file.header().node_data_offset;
graph_file.write_bytes(node_data_offset, &buffer)?;
let filler_offset = 992;
let filler_buffer = vec![0u8; 32];
graph_file.write_bytes(filler_offset, &filler_buffer)?;
println!("DEBUG: Creating NodeStore (should trigger rebuild)...");
let mut node_store = NodeStore::new(&mut graph_file);
let result = node_store.read_node(1);
println!("DEBUG: read_node(1) result: {:?}", result);
println!("DEBUG: Test completed");
Ok(())
}