mod errors; mod store; mod structs; pub use crate::errors::NoteStoreError; pub use crate::store::NoteStore; #[cfg(test)] mod tests { use super::*; use tokio; async fn fresh_inmemory_database() -> NoteStore { let storagepool = NoteStore::new("sqlite://:memory:").await; assert!(storagepool.is_ok()); let storagepool = storagepool.unwrap(); assert!(storagepool.reset_database().await.is_ok()); storagepool } #[tokio::test(threaded_scheduler)] async fn fetching_unfound_page_works() { let storagepool = fresh_inmemory_database().await; let unfoundpage = storagepool.fetch_page("nonexistent-page").await; assert!(unfoundpage.is_err()); } #[tokio::test(threaded_scheduler)] async fn fetching_unfound_note_works() { let storagepool = fresh_inmemory_database().await; let unfoundnote = storagepool.fetch_note("nonexistent-note").await; assert!(unfoundnote.is_err()); } #[tokio::test(threaded_scheduler)] async fn cloning_storagepool_is_ok() { let storagepool = fresh_inmemory_database().await; let storagepool2 = storagepool.clone(); let unfoundnote = storagepool2.fetch_note("nonexistent-note").await; assert!(unfoundnote.is_err()); let unfoundnote = storagepool.fetch_note("nonexistent-note").await; assert!(unfoundnote.is_err()); } }