use std::sync::Arc;
use crate::database::migrations::ledger;
use crate::database::DatabaseConnection;
pub(super) async fn sqlite_ledger() -> DatabaseConnection {
let pool = sqlx::SqlitePool::connect("sqlite::memory:")
.await
.expect("failed to open in-memory sqlite database");
let connection = DatabaseConnection::Sqlite(Arc::new(pool));
ledger::ensure_table(&connection)
.await
.expect("failed to create ledger table");
connection
}
pub(super) async fn row_count(connection: &DatabaseConnection, name: &str) -> i64 {
let DatabaseConnection::Sqlite(pool) = connection else {
panic!("expected sqlite connection");
};
sqlx::query_scalar("SELECT COUNT(*) FROM _rustyroad_migrations WHERE name = ?")
.bind(name)
.fetch_one(pool.as_ref())
.await
.expect("failed to count ledger rows")
}