refactor: LOW+MEDIUM cleanups — CQRS DiaryQuery/GoalCommand+GoalQuery,

test-helpers out of production, decompose get_user_profile_html,
dedup secure_flag, remove vestigial social_query, drop
PersistedImportSession, LoginCommand rename, DeleteAccountDeps,
PersonId macro, ReviewSortBy rename, TUI Command for fs::read,
generic PaginatedResponse<T>, noop ports for production fallbacks
This commit is contained in:
2026-07-10 05:29:02 +02:00
parent 5e0dde656c
commit 6a9b4e5c00
52 changed files with 405 additions and 298 deletions

View File

@@ -6,7 +6,7 @@ use domain::{
models::{Movie, Review},
ports::{MovieCommand, MovieQuery, ReviewRepository},
testing::{
FakeDiaryRepository, InMemoryMovieRepository, InMemoryReviewRepository, NoopEventPublisher,
FakeDiaryQuery, InMemoryMovieRepository, InMemoryReviewRepository, NoopEventPublisher,
},
value_objects::{MovieId, MovieTitle, Rating, ReleaseYear, UserId},
};
@@ -41,7 +41,7 @@ fn make_review(movie_id: MovieId, user_id: UserId) -> Review {
async fn test_delete_review_removes_it() {
let movies = InMemoryMovieRepository::new();
let reviews = InMemoryReviewRepository::new();
let diary = FakeDiaryRepository::new();
let diary = FakeDiaryQuery::new();
let events = NoopEventPublisher::new();
let movie = make_movie();
@@ -79,7 +79,7 @@ async fn test_delete_review_removes_it() {
#[tokio::test]
async fn test_delete_review_wrong_user_is_unauthorized() {
let reviews = InMemoryReviewRepository::new();
let diary = FakeDiaryRepository::new();
let diary = FakeDiaryQuery::new();
let movies = InMemoryMovieRepository::new();
let events = NoopEventPublisher::new();

View File

@@ -2,7 +2,7 @@ use std::sync::Arc;
use async_trait::async_trait;
use domain::errors::DomainError;
use domain::testing::{FakeDiaryRepository, NoopSocialQueryPort};
use domain::testing::{FakeDiaryQuery, NoopSocialQueryPort};
use crate::{
config::AppConfig, diary::deps::GetActivityFeedDeps, diary::get_activity_feed,
@@ -11,7 +11,7 @@ use crate::{
fn default_deps() -> GetActivityFeedDeps {
GetActivityFeedDeps {
diary: FakeDiaryRepository::new() as _,
diary: FakeDiaryQuery::new() as _,
social_query: Arc::new(NoopSocialQueryPort),
config: TestContextBuilder::new().config,
}
@@ -112,7 +112,7 @@ async fn following_filter_parses_local_and_remote_urls() {
let social = Arc::new(FakeSocialWithFollowing(following_urls));
let deps = GetActivityFeedDeps {
diary: FakeDiaryRepository::new() as _,
diary: FakeDiaryQuery::new() as _,
social_query: social as _,
config: AppConfig {
allow_registration: true,

View File

@@ -1,11 +1,11 @@
use domain::testing::FakeDiaryRepository;
use domain::testing::FakeDiaryQuery;
use std::sync::Arc;
use crate::{diary::get_diary, diary::queries::GetDiaryQuery};
#[tokio::test]
async fn returns_empty_page() {
let diary = FakeDiaryRepository::new() as Arc<dyn domain::ports::DiaryRepository>;
let diary = FakeDiaryQuery::new() as Arc<dyn domain::ports::DiaryQuery>;
let result = get_diary::execute(
&diary,

View File

@@ -5,7 +5,7 @@ use uuid::Uuid;
use domain::{
models::Movie,
ports::MovieCommand,
testing::{FakeDiaryRepository, InMemoryMovieProfileRepository, InMemoryMovieRepository},
testing::{FakeDiaryQuery, InMemoryMovieProfileRepository, InMemoryMovieRepository},
value_objects::{MovieTitle, ReleaseYear},
};
@@ -18,7 +18,7 @@ use crate::{
async fn fails_when_movie_not_found() {
let deps = GetMovieSocialPageDeps {
movie_query: InMemoryMovieRepository::new(),
diary: FakeDiaryRepository::new() as _,
diary: FakeDiaryQuery::new() as _,
movie_profile: InMemoryMovieProfileRepository::new(),
};
@@ -51,7 +51,7 @@ async fn returns_movie_social_page() {
let deps = GetMovieSocialPageDeps {
movie_query: Arc::clone(&movies) as _,
diary: FakeDiaryRepository::new() as _,
diary: FakeDiaryQuery::new() as _,
movie_profile: InMemoryMovieProfileRepository::new(),
};

View File

@@ -2,7 +2,7 @@ use std::sync::Arc;
use domain::{
models::Movie,
ports::DiaryRepository,
ports::DiaryQuery,
services::review_history::Trend,
value_objects::{MovieTitle, ReleaseYear},
};
@@ -20,9 +20,9 @@ async fn returns_empty_history() {
);
let movie_id = movie.id().value();
let diary = domain::testing::FakeDiaryRepository::new();
let diary = domain::testing::FakeDiaryQuery::new();
diary.seed_history(movie, vec![]);
let diary: Arc<dyn DiaryRepository> = diary;
let diary: Arc<dyn DiaryQuery> = diary;
let (history, trend) = get_review_history::execute(&diary, GetReviewHistoryQuery { movie_id })
.await