use grafeo_common::types::Value;
use grafeo_engine::GrafeoDB;
pub fn build_fixture_db() -> GrafeoDB {
let db = GrafeoDB::new_in_memory();
let alix = db.create_node(&["Person"]);
db.set_node_property(alix, "name", Value::String("Alix".into()));
db.set_node_property(alix, "age", Value::Int64(30));
let gus = db.create_node(&["Person", "Employee"]);
db.set_node_property(gus, "name", Value::String("Gus".into()));
db.set_node_property(gus, "age", Value::Int64(25));
let acme = db.create_node(&["Company"]);
db.set_node_property(acme, "name", Value::String("Acme Corp".into()));
let knows = db.create_edge(alix, gus, "KNOWS");
db.set_edge_property(knows, "since", Value::Int64(2020));
let works = db.create_edge(gus, acme, "WORKS_AT");
db.set_edge_property(works, "role", Value::String("Engineer".into()));
db
}
#[test]
#[ignore = "one-shot fixture generator, not a regular test"]
fn regenerate_snapshot_fixture() {
let db = build_fixture_db();
let bytes = db.export_snapshot().unwrap();
let path = concat!(
env!("CARGO_MANIFEST_DIR"),
"/tests/fixtures/snapshot_v4.bin"
);
std::fs::write(path, &bytes).unwrap();
println!("Wrote {} bytes to {path}", bytes.len());
println!("First byte (snapshot version): {}", bytes[0]);
}