notesmachine/server/nm-store/src/lib.rs

62 lines
1.9 KiB
Rust

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());
}
// #[tokio::test(threaded_scheduler)]
// async fn can_save_a_note() {
// let storagepool = fresh_inmemory_database().await;
// let note_id = storagepool.store_note("noteid", "notecontent", "note").await;
// assert!(note_id.is_ok());
// let note_id = note_id.unwrap();
// assert!(note_id > 0);
//
// let foundnote = storepool.fetch_note("noteid").await;
// assert!(foundnote.is_ok());
// let foundnote = foundnote.unwrap();
// assert_eq!(foundnote.content, "notecontent");
// assert_eq!(foundnote.notetype, "note");
// }
}