refactor/tighten-architecture #26
@@ -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"]
|
||||
|
||||
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> {
|
||||
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(
|
||||
|
||||
Reference in New Issue
Block a user