#![cfg(feature = "db-sqlite")]
use rs_zero::db::{DatabaseConfig, connect_pool, health_check, run_transaction};
#[tokio::test]
async fn sqlite_pool_health_and_transaction_helper_work() {
let pool = connect_pool(&DatabaseConfig::default())
.await
.expect("pool");
health_check(&pool).await.expect("health");
let value = run_transaction(&pool, |pool| async move {
sqlx::query("CREATE TABLE users (id INTEGER PRIMARY KEY)")
.execute(&pool)
.await?;
sqlx::query("INSERT INTO users (id) VALUES (1)")
.execute(&pool)
.await?;
let count: (i64,) = sqlx::query_as("SELECT COUNT(*) FROM users")
.fetch_one(&pool)
.await?;
Ok(count.0)
})
.await
.expect("transaction");
assert_eq!(value, 1);
}