fix(handlers): add handlers
This commit is contained in:
47
tests/db_smoke.rs
Normal file
47
tests/db_smoke.rs
Normal file
@@ -0,0 +1,47 @@
|
||||
use sqlx::PgPool;
|
||||
|
||||
#[tokio::test]
|
||||
async fn db_smoke_tenants_users_roundtrip() -> Result<(), Box<dyn std::error::Error>> {
|
||||
let database_url = match std::env::var("DATABASE_URL") {
|
||||
Ok(v) if !v.trim().is_empty() => v,
|
||||
_ => return Ok(()),
|
||||
};
|
||||
|
||||
let pool = PgPool::connect(&database_url).await?;
|
||||
let mut tx = pool.begin().await?;
|
||||
|
||||
let tenant_id: uuid::Uuid = sqlx::query_scalar(
|
||||
r#"
|
||||
INSERT INTO tenants (name, status, config)
|
||||
VALUES ($1, 'active', '{}'::jsonb)
|
||||
RETURNING id
|
||||
"#,
|
||||
)
|
||||
.bind(format!("smoke-{}", uuid::Uuid::new_v4()))
|
||||
.fetch_one(&mut *tx)
|
||||
.await?;
|
||||
|
||||
let user_id: uuid::Uuid = sqlx::query_scalar(
|
||||
r#"
|
||||
INSERT INTO users (tenant_id, email, password_hash)
|
||||
VALUES ($1, $2, $3)
|
||||
RETURNING id
|
||||
"#,
|
||||
)
|
||||
.bind(tenant_id)
|
||||
.bind(format!("smoke-{}@example.com", uuid::Uuid::new_v4()))
|
||||
.bind("hash")
|
||||
.fetch_one(&mut *tx)
|
||||
.await?;
|
||||
|
||||
let found: i64 = sqlx::query_scalar("SELECT COUNT(1) FROM users WHERE tenant_id = $1 AND id = $2")
|
||||
.bind(tenant_id)
|
||||
.bind(user_id)
|
||||
.fetch_one(&mut *tx)
|
||||
.await?;
|
||||
|
||||
assert_eq!(found, 1);
|
||||
tx.rollback().await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user