From 458207cea32e2251522ed3ca2efdf35ebbfdb582 Mon Sep 17 00:00:00 2001 From: azdle Date: Tue, 22 Jul 2025 12:15:26 -0500 Subject: [PATCH] use a fresh db for each test --- tests/auth.rs | 8 ++++---- tests/fixture/mod.rs | 20 ++++---------------- 2 files changed, 8 insertions(+), 20 deletions(-) diff --git a/tests/auth.rs b/tests/auth.rs index 040df8d..5cbd29e 100644 --- a/tests/auth.rs +++ b/tests/auth.rs @@ -13,7 +13,7 @@ async fn login_succeeds_with_valid_credentials() -> Result<()> { let resp = client .post(server.url("/auth/signup")) .header("Content-Type", "application/x-www-form-urlencoded") - .body("email=admin1&password=hunter2") + .body("email=admin&password=hunter2") .send() .await?; @@ -23,7 +23,7 @@ async fn login_succeeds_with_valid_credentials() -> Result<()> { let resp = client .post(server.url("/auth/login")) .header("Content-Type", "application/x-www-form-urlencoded") - .body("email=admin1&password=hunter2") + .body("email=admin&password=hunter2") .send() .await?; @@ -46,7 +46,7 @@ async fn login_fails_with_invalid_credentials() -> Result<()> { let resp = client .post(server.url("/auth/signup")) .header("Content-Type", "application/x-www-form-urlencoded") - .body("email=admin2&password=hunter2") + .body("email=admin&password=hunter2") .send() .await?; @@ -56,7 +56,7 @@ async fn login_fails_with_invalid_credentials() -> Result<()> { let resp = client .post(server.url("/auth/login")) .header("Content-Type", "application/x-www-form-urlencoded") - .body("email=admin2&password=hunter3") + .body("email=admin&password=hunter3") .send() .await?; diff --git a/tests/fixture/mod.rs b/tests/fixture/mod.rs index 405c233..d09ade5 100644 --- a/tests/fixture/mod.rs +++ b/tests/fixture/mod.rs @@ -1,4 +1,4 @@ -use anyhow::{bail, Result}; +use anyhow::Result; use bollard::query_parameters::{CreateImageOptionsBuilder, ListContainersOptionsBuilder}; use bollard::secret::{ ContainerCreateBody, ContainerInspectResponse, ContainerState, CreateImageInfo, Health, @@ -12,26 +12,16 @@ use sqlx::migrate::MigrateDatabase; use sqlx::{Connection, PgConnection}; use std::net::SocketAddr; use std::path::Path; -use std::sync::Arc; use std::time::Duration; -use tokio::sync::OnceCell; use tokio::task::JoinHandle; use tokio::time::sleep; use tracing::{debug, trace}; use zero_to_axum::{conf, Conf, ZeroToAxum}; -static SHARED_DB: OnceCell> = OnceCell::const_new(); -async fn get_shared_db() -> Arc { - SHARED_DB - .get_or_init(|| async { Arc::new(TestDb::spawn().await) }) - .await - .clone() -} - pub struct TestServer { server_task_handle: JoinHandle<()>, addr: SocketAddr, - db: Arc, + _db: TestDb, pub mock_smtp_server: maik::MockServer, } @@ -39,9 +29,7 @@ impl TestServer { pub async fn spawn() -> TestServer { debug!("start test server"); - // TODO: allow per-test DBs in some cases - // let db = TestDb::spawn().await; - let db = get_shared_db().await; + let db = TestDb::spawn().await; let url = dbg!(db.get_url()); let mock_smtp_server = maik::MockServer::builder() @@ -76,7 +64,7 @@ impl TestServer { TestServer { server_task_handle, addr, - db, + _db: db, mock_smtp_server, } }