#![cfg(feature = "turso")]
use sql_middleware::prelude::*;
#[test]
fn test5d_turso_custom_tx_minimal() -> Result<(), Box<dyn std::error::Error>> {
let rt = tokio::runtime::Runtime::new()?;
rt.block_on(async move {
let cap = ConfigAndPool::turso_builder(":memory:".to_string())
.build()
.await?;
let mut conn = cap.get_connection().await?;
conn.execute_batch("CREATE TABLE IF NOT EXISTS t (id INTEGER, name TEXT);")
.await?;
let MiddlewarePoolConnection::Turso {
conn: turso_conn, ..
} = &mut conn
else {
panic!("Expected Turso connection");
};
let tx = sql_middleware::turso::begin_transaction(turso_conn).await?;
let mut stmt = tx
.prepare("INSERT INTO t (id, name) VALUES (?1, ?2)")
.await?;
let _ = tx
.execute_prepared(
&mut stmt,
&[RowValues::Int(1), RowValues::Text("alice".into())],
)
.await?;
tx.commit().await?;
let rs = conn
.query("SELECT name FROM t WHERE id = ?1")
.params(&[RowValues::Int(1)])
.select()
.await?;
assert_eq!(
rs.results[0].get("name").unwrap().as_text().unwrap(),
"alice"
);
Ok::<(), SqlMiddlewareDbError>(())
})?;
Ok(())
}