diff --git a/Cargo.lock b/Cargo.lock index c504bc1..11ee8fa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -627,6 +627,7 @@ dependencies = [ "migration", "sea-orm", "serde", + "serial_test", "temp-env", "thiserror 2.0.12", "tracing-actix-web", @@ -2803,12 +2804,27 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +[[package]] +name = "scc" +version = "2.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22b2d775fb28f245817589471dd49c5edf64237f4a19d10ce9a92ff4651a27f4" +dependencies = [ + "sdd", +] + [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "sdd" +version = "3.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "584e070911c7017da6cb2eb0788d09f43d789029b5877d3e5ecc8acf86ceee21" + [[package]] name = "sea-bae" version = "0.2.1" @@ -3024,6 +3040,31 @@ dependencies = [ "serde", ] +[[package]] +name = "serial_test" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b258109f244e1d6891bf1053a55d63a5cd4f8f4c30cf9a1280989f80e7a1fa9" +dependencies = [ + "futures", + "log", + "once_cell", + "parking_lot", + "scc", + "serial_test_derive", +] + +[[package]] +name = "serial_test_derive" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "sha1" version = "0.10.6" diff --git a/crates/backend/Cargo.toml b/crates/backend/Cargo.toml index b9b3a92..a1b2d09 100644 --- a/crates/backend/Cargo.toml +++ b/crates/backend/Cargo.toml @@ -31,6 +31,7 @@ dotenvy = "0.15" [dev-dependencies] temp-env = "*" +serial_test = "*" [features] serve = [] diff --git a/crates/backend/src/main.rs b/crates/backend/src/main.rs index 554a49c..5641919 100644 --- a/crates/backend/src/main.rs +++ b/crates/backend/src/main.rs @@ -120,10 +120,12 @@ fn build_database_url() -> String { #[cfg(test)] mod tests { use std::env; + use serial_test::serial; use super::*; use temp_env::{with_var, with_vars}; #[test] + #[serial] fn build_database_url_with_defaults() { with_vars( [ @@ -141,6 +143,7 @@ mod tests { } #[test] + #[serial] fn build_database_url_with_all_vars() { with_vars( [ @@ -162,6 +165,7 @@ mod tests { } #[test] + #[serial] #[should_panic(expected = "DB_HOST must be set in .env")] fn build_database_url_missing_host_panics() { with_var("DB_HOST", None::<&str>, || { @@ -170,6 +174,7 @@ mod tests { } #[test] + #[serial] fn connect_to_redis_database_with_defaults() { with_vars( [ @@ -193,6 +198,7 @@ mod tests { } #[test] + #[serial] fn connect_to_redis_database_with_custom_port() { with_vars( [ @@ -217,6 +223,7 @@ mod tests { } #[test] + #[serial] fn check_if_no_env_variables_are_loaded_from_environment_file() { assert_eq!(env::var("DB_NAME"), Err(env::VarError::NotPresent)); assert_eq!(env::var("DB_USER"), Err(env::VarError::NotPresent));