diff --git a/crates/adapters/sqlite/src/repositories/diary/mod.rs b/crates/adapters/sqlite/src/repositories/diary/mod.rs index c1a211d7..62aa7dfd 100644 --- a/crates/adapters/sqlite/src/repositories/diary/mod.rs +++ b/crates/adapters/sqlite/src/repositories/diary/mod.rs @@ -169,6 +169,3 @@ impl SqliteDiaryRepository { .map_err(crate::shared::map_sqlx_error) } } - -#[cfg(test)] -mod tests; diff --git a/crates/adapters/sqlite/src/repositories/image_ref/mod.rs b/crates/adapters/sqlite/src/repositories/image_ref/mod.rs index 322d1b90..0a1397c5 100644 --- a/crates/adapters/sqlite/src/repositories/image_ref/mod.rs +++ b/crates/adapters/sqlite/src/repositories/image_ref/mod.rs @@ -64,6 +64,3 @@ impl ImageRefQuery for SqliteImageRefAdapter { Ok(rows.into_iter().map(|(k,)| k).collect()) } } - -#[cfg(test)] -mod tests; diff --git a/crates/adapters/sqlite/src/repositories/persons/mod.rs b/crates/adapters/sqlite/src/repositories/persons/mod.rs index 19118f8f..38055c2b 100644 --- a/crates/adapters/sqlite/src/repositories/persons/mod.rs +++ b/crates/adapters/sqlite/src/repositories/persons/mod.rs @@ -23,6 +23,3 @@ pub fn create_person_adapter(pool: SqlitePool) -> (Arc, Arc, ) } - -#[cfg(test)] -mod tests; diff --git a/crates/adapters/sqlite/src/repositories/profile/mod.rs b/crates/adapters/sqlite/src/repositories/profile/mod.rs index 9b827dd2..348ff85a 100644 --- a/crates/adapters/sqlite/src/repositories/profile/mod.rs +++ b/crates/adapters/sqlite/src/repositories/profile/mod.rs @@ -298,6 +298,3 @@ impl MovieProfileRepository for SqliteMovieProfileRepository { .collect()) } } - -#[cfg(test)] -mod tests; diff --git a/crates/adapters/sqlite/src/repositories/search/mod.rs b/crates/adapters/sqlite/src/repositories/search/mod.rs index 9dd37f91..48e876d4 100644 --- a/crates/adapters/sqlite/src/repositories/search/mod.rs +++ b/crates/adapters/sqlite/src/repositories/search/mod.rs @@ -22,6 +22,3 @@ pub fn create_search_adapter(pool: SqlitePool) -> (Arc, Arc, ) } - -#[cfg(test)] -mod tests; diff --git a/crates/adapters/sqlite/src/repositories/social/mod.rs b/crates/adapters/sqlite/src/repositories/social/mod.rs index 1c003a59..4e6042c8 100644 --- a/crates/adapters/sqlite/src/repositories/social/mod.rs +++ b/crates/adapters/sqlite/src/repositories/social/mod.rs @@ -22,6 +22,3 @@ pub fn create_federated_profile_query( ) -> std::sync::Arc { std::sync::Arc::new(SqliteSocialRepository::new(pool, instance)) } - -#[cfg(test)] -mod tests; diff --git a/crates/adapters/sqlite/src/repositories/users/mod.rs b/crates/adapters/sqlite/src/repositories/users/mod.rs index d69b8be8..f6990409 100644 --- a/crates/adapters/sqlite/src/repositories/users/mod.rs +++ b/crates/adapters/sqlite/src/repositories/users/mod.rs @@ -197,6 +197,3 @@ impl UserRepository for SqliteUserRepository { .collect() } } - -#[cfg(test)] -mod tests; diff --git a/crates/adapters/sqlite/tests/repositories.rs b/crates/adapters/sqlite/tests/repositories.rs new file mode 100644 index 00000000..489a9fa5 --- /dev/null +++ b/crates/adapters/sqlite/tests/repositories.rs @@ -0,0 +1,14 @@ +#[path = "repositories/diary_repository_test.rs"] +mod diary_repository_test; +#[path = "repositories/image_ref_adapter_test.rs"] +mod image_ref_adapter_test; +#[path = "repositories/movie_profile_repository_test.rs"] +mod movie_profile_repository_test; +#[path = "repositories/person_adapter_test.rs"] +mod person_adapter_test; +#[path = "repositories/search_adapter_test.rs"] +mod search_adapter_test; +#[path = "repositories/social_repository_test.rs"] +mod social_repository_test; +#[path = "repositories/user_repository_test.rs"] +mod user_repository_test; diff --git a/crates/adapters/sqlite/src/repositories/diary/tests.rs b/crates/adapters/sqlite/tests/repositories/diary_repository_test.rs similarity index 92% rename from crates/adapters/sqlite/src/repositories/diary/tests.rs rename to crates/adapters/sqlite/tests/repositories/diary_repository_test.rs index 477beaf6..59a0d7c4 100644 --- a/crates/adapters/sqlite/src/repositories/diary/tests.rs +++ b/crates/adapters/sqlite/tests/repositories/diary_repository_test.rs @@ -1,13 +1,13 @@ -use super::*; use domain::{ models::collections::PageParams, models::{FeedSortBy, FollowingFilter}, ports::DiaryQuery, }; +use sqlite::SqliteDiaryRepository; use sqlx::SqlitePool; async fn setup(pool: &SqlitePool) { - sqlx::migrate!("./migrations").run(pool).await.unwrap(); + sqlite::migrate(pool).await.unwrap(); sqlx::query( "INSERT INTO users (id, email, username, password_hash, created_at) VALUES @@ -41,7 +41,7 @@ async fn setup(pool: &SqlitePool) { } #[tokio::test] -async fn test_sort_by_rating_descending() { +async fn activity_feed_sorts_by_rating_descending() { let pool = SqlitePool::connect(":memory:").await.unwrap(); setup(&pool).await; let repo = SqliteDiaryRepository::new(pool); @@ -61,7 +61,7 @@ async fn test_sort_by_rating_descending() { } #[tokio::test] -async fn test_search_by_title() { +async fn activity_feed_filters_by_title_search() { let pool = SqlitePool::connect(":memory:").await.unwrap(); setup(&pool).await; let repo = SqliteDiaryRepository::new(pool); @@ -77,7 +77,7 @@ async fn test_search_by_title() { } #[tokio::test] -async fn test_following_filter() { +async fn activity_feed_restricts_to_followed_local_and_remote_authors() { let pool = SqlitePool::connect(":memory:").await.unwrap(); setup(&pool).await; let repo = SqliteDiaryRepository::new(pool); @@ -105,7 +105,7 @@ async fn test_following_filter() { } #[tokio::test] -async fn test_get_movie_stats_local() { +async fn movie_stats_for_local_review() { let pool = SqlitePool::connect(":memory:").await.unwrap(); setup(&pool).await; let repo = SqliteDiaryRepository::new(pool); @@ -123,7 +123,7 @@ async fn test_get_movie_stats_local() { } #[tokio::test] -async fn test_get_movie_social_feed_returns_reviews_for_movie() { +async fn movie_social_feed_returns_reviews_for_movie() { let pool = SqlitePool::connect(":memory:").await.unwrap(); setup(&pool).await; let repo = SqliteDiaryRepository::new(pool); @@ -143,7 +143,7 @@ async fn test_get_movie_social_feed_returns_reviews_for_movie() { } #[tokio::test] -async fn test_get_movie_social_feed_federated_review() { +async fn movie_social_feed_marks_federated_review_as_remote() { let pool = SqlitePool::connect(":memory:").await.unwrap(); setup(&pool).await; let repo = SqliteDiaryRepository::new(pool); @@ -164,7 +164,7 @@ async fn test_get_movie_social_feed_federated_review() { } #[tokio::test] -async fn test_get_movie_social_feed_pagination() { +async fn movie_social_feed_offset_past_end_returns_no_items() { let pool = SqlitePool::connect(":memory:").await.unwrap(); setup(&pool).await; let repo = SqliteDiaryRepository::new(pool); @@ -180,7 +180,7 @@ async fn test_get_movie_social_feed_pagination() { } #[tokio::test] -async fn test_get_movie_stats_federated() { +async fn movie_stats_counts_federated_review() { let pool = SqlitePool::connect(":memory:").await.unwrap(); setup(&pool).await; let repo = SqliteDiaryRepository::new(pool); diff --git a/crates/adapters/sqlite/src/repositories/image_ref/tests.rs b/crates/adapters/sqlite/tests/repositories/image_ref_adapter_test.rs similarity index 96% rename from crates/adapters/sqlite/src/repositories/image_ref/tests.rs rename to crates/adapters/sqlite/tests/repositories/image_ref_adapter_test.rs index e71c9d38..7a49eca4 100644 --- a/crates/adapters/sqlite/src/repositories/image_ref/tests.rs +++ b/crates/adapters/sqlite/tests/repositories/image_ref_adapter_test.rs @@ -1,4 +1,6 @@ -use super::*; +use domain::ports::{ImageRefCommand, ImageRefQuery}; +use sqlite::SqliteImageRefAdapter; +use sqlx::SqlitePool; async fn setup(pool: &SqlitePool) { sqlx::query( diff --git a/crates/adapters/sqlite/src/repositories/profile/tests.rs b/crates/adapters/sqlite/tests/repositories/movie_profile_repository_test.rs similarity index 98% rename from crates/adapters/sqlite/src/repositories/profile/tests.rs rename to crates/adapters/sqlite/tests/repositories/movie_profile_repository_test.rs index 2a85a1c0..116e6e17 100644 --- a/crates/adapters/sqlite/src/repositories/profile/tests.rs +++ b/crates/adapters/sqlite/tests/repositories/movie_profile_repository_test.rs @@ -1,5 +1,5 @@ -use super::SqliteMovieProfileRepository; use domain::{ports::MovieProfileRepository, value_objects::MovieId}; +use sqlite::SqliteMovieProfileRepository; use sqlx::SqlitePool; async fn pool_with_schema() -> SqlitePool { diff --git a/crates/adapters/sqlite/src/repositories/persons/tests.rs b/crates/adapters/sqlite/tests/repositories/person_adapter_test.rs similarity index 99% rename from crates/adapters/sqlite/src/repositories/persons/tests.rs rename to crates/adapters/sqlite/tests/repositories/person_adapter_test.rs index 16623ad1..da08eb6d 100644 --- a/crates/adapters/sqlite/src/repositories/persons/tests.rs +++ b/crates/adapters/sqlite/tests/repositories/person_adapter_test.rs @@ -1,9 +1,9 @@ -use super::SqlitePersonAdapter; use domain::testing::test_person_with_tmdb; use domain::{ models::{ExternalPersonId, PersonId}, ports::{PersonCommand, PersonQuery}, }; +use sqlite::SqlitePersonAdapter; use sqlx::SqlitePool; async fn pool_with_schema() -> SqlitePool { diff --git a/crates/adapters/sqlite/src/repositories/search/tests.rs b/crates/adapters/sqlite/tests/repositories/search_adapter_test.rs similarity index 99% rename from crates/adapters/sqlite/src/repositories/search/tests.rs rename to crates/adapters/sqlite/tests/repositories/search_adapter_test.rs index 80f0faf6..874d3f1c 100644 --- a/crates/adapters/sqlite/src/repositories/search/tests.rs +++ b/crates/adapters/sqlite/tests/repositories/search_adapter_test.rs @@ -1,10 +1,10 @@ -use super::create_search_adapter; use domain::{ models::{ EntityType, IndexableDocument, Movie, SearchFilters, SearchQuery, collections::PageParams, }, value_objects::{MovieId, MovieTitle, ReleaseYear}, }; +use sqlite::create_search_adapter; use sqlx::SqlitePool; async fn pool_with_schema() -> SqlitePool { diff --git a/crates/adapters/sqlite/src/repositories/social/tests.rs b/crates/adapters/sqlite/tests/repositories/social_repository_test.rs similarity index 98% rename from crates/adapters/sqlite/src/repositories/social/tests.rs rename to crates/adapters/sqlite/tests/repositories/social_repository_test.rs index dcb18b64..526b6dbf 100644 --- a/crates/adapters/sqlite/src/repositories/social/tests.rs +++ b/crates/adapters/sqlite/tests/repositories/social_repository_test.rs @@ -1,6 +1,6 @@ -use super::*; use domain::ports::{FederationAdminQuery, FollowQuery}; use domain::value_objects::{FollowStatus, InstanceIdentity, SocialIdentity}; +use sqlite::SqliteSocialRepository; use sqlx::SqlitePool; async fn test_pool() -> SqlitePool { @@ -220,7 +220,7 @@ async fn setup_admin_query_db(pool: &SqlitePool) { } #[tokio::test] -async fn test_list_all_followed_remote_actors_deduplicates() { +async fn list_all_followed_remote_actors_deduplicates_across_users() { let pool = SqlitePool::connect(":memory:").await.unwrap(); setup_admin_query_db(&pool).await; let repo = diff --git a/crates/adapters/sqlite/src/repositories/users/tests.rs b/crates/adapters/sqlite/tests/repositories/user_repository_test.rs similarity index 92% rename from crates/adapters/sqlite/src/repositories/users/tests.rs rename to crates/adapters/sqlite/tests/repositories/user_repository_test.rs index bd94d1d6..fa6c3290 100644 --- a/crates/adapters/sqlite/src/repositories/users/tests.rs +++ b/crates/adapters/sqlite/tests/repositories/user_repository_test.rs @@ -1,5 +1,8 @@ -use super::*; +use domain::models::UserProfile; +use domain::ports::UserRepository; use domain::testing::test_user; +use domain::value_objects::UserId; +use sqlite::SqliteUserRepository; use sqlx::SqlitePool; async fn setup() -> (SqlitePool, SqliteUserRepository) { @@ -59,7 +62,7 @@ async fn update_profile_persists_bio_and_avatar() { repo.update_profile( user.id(), - &domain::models::UserProfile { + &UserProfile { bio: Some("My biography".to_string()), avatar_path: Some("avatars/user1".to_string()), ..Default::default() @@ -80,7 +83,7 @@ async fn update_profile_clears_fields_with_none() { repo.save(&user).await.unwrap(); repo.update_profile( user.id(), - &domain::models::UserProfile { + &UserProfile { bio: Some("bio".to_string()), avatar_path: Some("path".to_string()), ..Default::default() @@ -88,7 +91,7 @@ async fn update_profile_clears_fields_with_none() { ) .await .unwrap(); - repo.update_profile(user.id(), &domain::models::UserProfile::default()) + repo.update_profile(user.id(), &UserProfile::default()) .await .unwrap();