test: get_users use case
Fake list_with_stats now returns stored users (was always empty).
This commit is contained in:
@@ -16,6 +16,8 @@ mod get_page_viewer_test;
|
|||||||
mod get_profile_settings_test;
|
mod get_profile_settings_test;
|
||||||
#[path = "users/get_settings_test.rs"]
|
#[path = "users/get_settings_test.rs"]
|
||||||
mod get_settings_test;
|
mod get_settings_test;
|
||||||
|
#[path = "users/get_users_test.rs"]
|
||||||
|
mod get_users_test;
|
||||||
#[path = "users/resolve_username_to_id_test.rs"]
|
#[path = "users/resolve_username_to_id_test.rs"]
|
||||||
mod resolve_username_to_id_test;
|
mod resolve_username_to_id_test;
|
||||||
#[path = "users/update_profile_fields_test.rs"]
|
#[path = "users/update_profile_fields_test.rs"]
|
||||||
|
|||||||
36
crates/application/tests/users/get_users_test.rs
Normal file
36
crates/application/tests/users/get_users_test.rs
Normal file
@@ -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());
|
||||||
|
}
|
||||||
@@ -59,7 +59,21 @@ impl UserRepository for InMemoryStore {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async fn list_with_stats(&self) -> Result<Vec<UserSummary>, DomainError> {
|
async fn list_with_stats(&self) -> Result<Vec<UserSummary>, 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(
|
async fn update_profile(
|
||||||
|
|||||||
Reference in New Issue
Block a user