diff --git a/src/main.rs b/src/main.rs index 3b25c42..fdb4495 100644 --- a/src/main.rs +++ b/src/main.rs @@ -112,6 +112,15 @@ mod tests { Ok(()) } + pub async fn migrations(pool: &sqlx::PgPool) { + // Run migrations using the sqlx::migrate! macro + // Assumes your migrations are in a ./migrations folder relative to Cargo.toml + sqlx::migrate!("./test_migrations") + .run(pool) + .await + .expect("Failed to run migrations"); + } + pub async fn get_database_name() -> Result> { let database_url = icarus_envy::environment::get_db_url().await; @@ -194,7 +203,7 @@ mod tests { let pool = db_mgr::connect_to_db(&db_name).await.unwrap(); - icarus_auth::db::migrations(&pool).await; + db_mgr::migrations(&pool).await; let app = init::routes().await.layer(axum::Extension(pool)); @@ -244,6 +253,23 @@ mod tests { let _ = db_mgr::drop_database(&tm_pool, &db_name).await; } + pub mod requests { + use tower::ServiceExt; // for `call`, `oneshot`, and `ready` + + pub async fn register(app: &axum::Router) -> Result { + let usr = super::get_test_register_request(); + let payload = super::get_test_register_payload(&usr); + let req = axum::http::Request::builder() + .method(axum::http::Method::POST) + .uri(crate::callers::endpoints::REGISTER) + .header(axum::http::header::CONTENT_TYPE, "application/json") + .body(axum::body::Body::from(payload.to_string())) + .unwrap(); + + app.clone().oneshot(req).await + } + } + #[tokio::test] async fn test_login_user() { let tm_pool = db_mgr::get_pool().await.unwrap(); @@ -261,7 +287,7 @@ mod tests { let pool = db_mgr::connect_to_db(&db_name).await.unwrap(); - icarus_auth::db::migrations(&pool).await; + db_mgr::migrations(&pool).await; let app = init::routes().await.layer(axum::Extension(pool));