use std::fs;
use serde::{Deserialize, Serialize};
use sqlx::{prelude::FromRow, Pool, Sqlite};
#[derive(Debug, Clone, Serialize, Deserialize, FromRow, Eq, PartialEq)]
pub struct Todo {
pub id: i32,
pub title: String,
pub content: String,
}
#[cfg(feature = "sqlite")]
pub async fn dummy_sqlite_database() -> Pool<Sqlite> {
sqlx::sqlite::SqlitePoolOptions::new()
.connect("sqlite::memory:")
.await
.expect("Failed to create an in-memory sqlite database")
}
#[cfg(feature = "sqlite")]
pub async fn prepare_dummy_sqlite_database(pool: &Pool<Sqlite>) {
let mut tx = pool.begin().await.unwrap();
let create_stmt = fs::read_to_string("src/tests/sql/01_create.sql").unwrap();
let query = sqlx::query(&create_stmt);
query
.execute(&mut *tx)
.await
.expect("Failed to create a dummy database");
let insert_stmt = fs::read_to_string("src/tests/sql/02_insert.sql").unwrap();
let query = sqlx::query(&insert_stmt);
query
.execute(&mut *tx)
.await
.expect("Failed to insert dummy data");
tx.commit()
.await
.expect("Failed to prepare a dummy database");
}