#![cfg(any(feature = "turso", feature = "postgresql", feature = "mysql"))]
use ormer::Database;
mod _test_common;
define_test_user_minimal!(SimpleUser, "test_pool_simple_users_1");
async fn test_pool_basic_impl(
config: &_test_common::DbConfig,
) -> Result<(), Box<dyn std::error::Error>> {
println!("Creating connection pool...");
let pool = match config.0 {
ormer::DbType::Turso => {
Database::create_pool(config.0, config.1)
.range(0..1) .build()
.await?
}
_ => {
Database::create_pool(config.0, config.1)
.range(0..3) .build()
.await?
}
};
println!("Pool created successfully");
println!("Getting connection from pool...");
let conn = pool.get().await?;
println!("Connection acquired");
conn.create_table::<SimpleUser>().execute().await?;
println!("Table created");
conn.insert(&SimpleUser {
id: 1,
name: "Alice".to_string(),
})
.await?;
println!("Data inserted");
let users = conn.select::<SimpleUser>().collect::<Vec<_>>().await?;
println!("Queried {} users", users.len());
assert_eq!(users.len(), 1);
assert_eq!(users[0].name, "Alice");
println!("Test passed!");
conn.drop_table::<SimpleUser>().execute().await?;
Ok(())
}
test_on_all_dbs_result!(test_pool_basic_impl);