use qail_core::ast::Qail;
use qail_pg::{PgDriver, PgResult};
#[tokio::test]
#[ignore = "Requires PostgreSQL server - run manually"]
async fn test_simple_query() -> PgResult<()> {
let mut driver =
PgDriver::connect_with_password("127.0.0.1", 5432, "qail", "qail_test", "qail").await?;
let cmd = Qail::get("users").select_all();
let rows = driver.fetch_all(&cmd).await?;
println!("Fetched {} rows:", rows.len());
for row in &rows {
let id = row.get_i32(0);
let name = row.get_string(1);
let email = row.get_string(2);
let active = row.get_bool(3);
println!(
" id={:?}, name={:?}, email={:?}, active={:?}",
id, name, email, active
);
}
assert!(rows.len() >= 2, "Expected at least 2 users");
Ok(())
}
#[tokio::test]
#[ignore = "Requires PostgreSQL server - run manually"]
async fn test_filtered_query() -> PgResult<()> {
use qail_core::ast::Operator;
let mut driver =
PgDriver::connect_with_password("127.0.0.1", 5432, "qail", "qail_test", "qail").await?;
let cmd = Qail::get("users")
.columns(["id", "name"])
.filter("active", Operator::Eq, true);
let rows = driver.fetch_all(&cmd).await?;
println!("Active users: {}", rows.len());
Ok(())
}