FEAT Can get a raw note.
TEST Asserts a non-existent raw note is non-existent.
This commit is contained in:
parent
8ee71c76a3
commit
71dfc479d8
|
@ -11,13 +11,27 @@ mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
use tokio;
|
use tokio;
|
||||||
|
|
||||||
#[tokio::test(threaded_scheduler)]
|
async fn fresh_inmemory_database() -> NoteStore {
|
||||||
async fn it_works() {
|
|
||||||
let storagepool = NoteStore::new("sqlite://:memory:").await;
|
let storagepool = NoteStore::new("sqlite://:memory:").await;
|
||||||
assert!(storagepool.is_ok());
|
assert!(storagepool.is_ok());
|
||||||
let storagepool = storagepool.unwrap();
|
let storagepool = storagepool.unwrap();
|
||||||
assert!(storagepool.reset_database().await.is_ok());
|
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;
|
let unfoundpage = storagepool.fetch_page("nonexistent-page").await;
|
||||||
assert!(unfoundpage.is_err());
|
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());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
SELECT id, uuid, content, notetype FROM notes WHERE uuid=?;
|
|
@ -2,7 +2,7 @@ use sqlx;
|
||||||
use sqlx::sqlite::SqlitePool;
|
use sqlx::sqlite::SqlitePool;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use crate::errors::NoteStoreError;
|
use crate::errors::NoteStoreError;
|
||||||
use crate::structs::RawPage;
|
use crate::structs::{RawPage, RawNote};
|
||||||
|
|
||||||
/// A handle to our Sqlite database.
|
/// A handle to our Sqlite database.
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
|
@ -34,4 +34,13 @@ impl NoteStore {
|
||||||
.fetch_one(&*self.0)
|
.fetch_one(&*self.0)
|
||||||
.await
|
.await
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub async fn fetch_note(&self, id: &str) -> SqlResult<RawNote> {
|
||||||
|
let select_one_note_sql = include_str!("sql/select_one_note.sql");
|
||||||
|
sqlx::query_as(select_one_note_sql)
|
||||||
|
.bind(&id)
|
||||||
|
.fetch_one(&*self.0)
|
||||||
|
.await
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,3 +8,11 @@ pub struct RawPage {
|
||||||
title: String,
|
title: String,
|
||||||
note_id: i64,
|
note_id: i64,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, Serialize, Deserialize, Debug, FromRow)]
|
||||||
|
pub struct RawNote {
|
||||||
|
id: i64,
|
||||||
|
uuid: String,
|
||||||
|
content: String,
|
||||||
|
notetype: String,
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue