use hippmem_store::store::{RedbStore, Store};
use std::fs;
#[test]
fn create_tables_and_reopen() {
let dir = tempfile::tempdir().expect("should be able to create a temp dir");
let store_path = dir.path().join("hippmem.redb");
{
let store = RedbStore::open(&store_path).expect("first open should succeed");
store.close().expect("close should succeed");
}
assert!(store_path.exists(), "redb file should exist");
assert!(
store_path.metadata().unwrap().len() > 0,
"redb file should not be empty"
);
{
let store = RedbStore::open(&store_path).expect("reopen should succeed");
store.close().expect("second close should succeed");
}
fs::remove_dir_all(dir).ok();
}
#[test]
fn reopen_preserves_tables() {
let dir = tempfile::tempdir().expect("should be able to create a temp dir");
let store_path = dir.path().join("hippmem.redb");
{
let store = RedbStore::open(&store_path).expect("open should succeed");
store.close().expect("close should succeed");
}
{
let store = RedbStore::open(&store_path).expect("reopen should succeed");
store.close().expect("close should succeed");
}
fs::remove_dir_all(dir).ok();
}
#[test]
fn open_creates_parent_dir() {
let dir = tempfile::tempdir().expect("should be able to create a temp dir");
let nested = dir
.path()
.join("nested")
.join("subdir")
.join("hippmem.redb");
let store = RedbStore::open(&nested).expect("should auto-create parent dir");
assert!(nested.exists());
store.close().expect("close should succeed");
fs::remove_dir_all(dir).ok();
}