From fdf4df38afbdb5fb6781109d97e2f3b940344f67 Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Sun, 25 Oct 2026 22:41:54 +0100 Subject: [PATCH] test: get_users use case Fake list_with_stats now returns stored users (was always empty). --- crates/application/tests/users.rs | 2 ++ .../application/tests/users/get_users_test.rs | 36 +++++++++++++++++++ crates/domain/src/testing/fakes/store_user.rs | 16 ++++++++- 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 crates/application/tests/users/get_users_test.rs diff --git a/crates/application/tests/users.rs b/crates/application/tests/users.rs index 855ac1db..dfcc27c1 100644 --- a/crates/application/tests/users.rs +++ b/crates/application/tests/users.rs @@ -16,6 +16,8 @@ mod get_page_viewer_test; mod get_profile_settings_test; #[path = "users/get_settings_test.rs"] mod get_settings_test; +#[path = "users/get_users_test.rs"] +mod get_users_test; #[path = "users/resolve_username_to_id_test.rs"] mod resolve_username_to_id_test; #[path = "users/update_profile_fields_test.rs"] diff --git a/crates/application/tests/users/get_users_test.rs b/crates/application/tests/users/get_users_test.rs new file mode 100644 index 00000000..6994d900 --- /dev/null +++ b/crates/application/tests/users/get_users_test.rs @@ -0,0 +1,36 @@ +use crate::support::TestContextBuilder; +use domain::testing::test_user; + +use application::users::deps::GetUsersListDeps; +use application::users::get_users; +use application::users::queries::GetUsersQuery; + +fn deps(b: &TestContextBuilder) -> GetUsersListDeps { + GetUsersListDeps { + user: b.user_repo.clone(), + federation_admin: b.federation_admin.clone(), + } +} + +#[tokio::test] +async fn returns_empty_lists_when_nothing_exists() { + let b = TestContextBuilder::new(); + + let result = get_users::execute(&deps(&b), GetUsersQuery).await.unwrap(); + + assert!(result.users.is_empty()); + assert!(result.remote_actors.is_empty()); +} + +#[tokio::test] +async fn lists_saved_user() { + let b = TestContextBuilder::new(); + let user = test_user("alice"); + b.user_repo.save(&user).await.unwrap(); + + let result = get_users::execute(&deps(&b), GetUsersQuery).await.unwrap(); + + assert_eq!(result.users.len(), 1); + assert_eq!(result.users[0].username(), "alice"); + assert!(result.remote_actors.is_empty()); +} diff --git a/crates/domain/src/testing/fakes/store_user.rs b/crates/domain/src/testing/fakes/store_user.rs index 9c0a4c28..d19008a9 100644 --- a/crates/domain/src/testing/fakes/store_user.rs +++ b/crates/domain/src/testing/fakes/store_user.rs @@ -59,7 +59,21 @@ impl UserRepository for InMemoryStore { } async fn list_with_stats(&self) -> Result, DomainError> { - Ok(vec![]) + let store = self.users.read().unwrap(); + Ok(store + .values() + .map(|u| { + UserSummary::new( + u.id().clone(), + u.email().clone(), + u.username().clone(), + u.display_name().map(str::to_string), + 0, + None, + u.avatar_path().map(str::to_string), + ) + }) + .collect()) } async fn update_profile(