feat: atomic wrapup, movie, integration writes
Ride writes: WrapUpRequested/Completed (wrapup create/set_complete), MovieDiscovered (resolve upsert, new+ext id only), PosterSynced (poster handler upsert), MovieDeleted (delete_movie), WatchEventIngested (save). Deps drop event_publisher: wrapup, ingest, delete_review, watchlist add, review logger. Remaining .publish( sites: announce-only: users/delete_account UserDeleted, person/get + get_credits PersonEnrichmentRequested, jobs/enrichment_staleness, http-axum search, movies/sync_poster + poster_sync_handler + image-converter backfill + users/update_profile ImageStored (object storage), activitypub federation_event_bridge (reacting to events). rides write, deferred: social/execute (see report), activitypub review_handler MovieEnrichmentRequested (after save_remote_review).
This commit is contained in:
@@ -5,7 +5,7 @@ use std::sync::Arc;
|
||||
|
||||
use domain::ports::MovieCommand;
|
||||
|
||||
use domain::testing::{InMemoryStore, NoopEventPublisher};
|
||||
use domain::testing::InMemoryStore;
|
||||
|
||||
use application::{
|
||||
diary::commands::LogReviewCommand, diary::log_review, diary::review_logger::DefaultReviewLogger,
|
||||
@@ -14,7 +14,6 @@ use application::{
|
||||
fn build_logger(
|
||||
movies: &Arc<InMemoryStore>,
|
||||
reviews: &Arc<InMemoryStore>,
|
||||
events: &Arc<NoopEventPublisher>,
|
||||
) -> Arc<dyn application::ports::ReviewLogger> {
|
||||
Arc::new(DefaultReviewLogger::new(
|
||||
Arc::clone(movies) as _,
|
||||
@@ -22,7 +21,6 @@ fn build_logger(
|
||||
Arc::clone(reviews) as _,
|
||||
TestContextBuilder::new().watchlist_repo,
|
||||
Arc::new(domain::testing::FakeMetadataClient) as _,
|
||||
Arc::clone(events) as _,
|
||||
))
|
||||
}
|
||||
|
||||
@@ -30,8 +28,7 @@ fn build_logger(
|
||||
async fn logging_a_review_creates_the_movie_and_the_review() {
|
||||
let movies = InMemoryStore::new();
|
||||
let reviews = Arc::clone(&movies);
|
||||
let events = NoopEventPublisher::new();
|
||||
let logger = build_logger(&movies, &reviews, &events);
|
||||
let logger = build_logger(&movies, &reviews);
|
||||
|
||||
let user_id = uuid::Uuid::new_v4();
|
||||
let cmd = log_review_command_manual(user_id, "Blade Runner", 1982);
|
||||
@@ -52,10 +49,9 @@ async fn logging_a_review_reuses_an_existing_movie() {
|
||||
|
||||
let existing_movie = test_movie_with_year("Alien", 1979);
|
||||
let movie_uuid = existing_movie.id().value();
|
||||
movies.upsert_movie(&existing_movie).await.unwrap();
|
||||
movies.upsert_movie(&existing_movie, &[]).await.unwrap();
|
||||
|
||||
let events = NoopEventPublisher::new();
|
||||
let logger = build_logger(&movies, &reviews, &events);
|
||||
let logger = build_logger(&movies, &reviews);
|
||||
|
||||
let cmd = LogReviewCommand {
|
||||
rating: 5,
|
||||
@@ -72,8 +68,7 @@ async fn logging_a_review_reuses_an_existing_movie() {
|
||||
async fn logging_a_review_with_an_invalid_rating_fails() {
|
||||
let movies = InMemoryStore::new();
|
||||
let reviews = Arc::clone(&movies);
|
||||
let events = NoopEventPublisher::new();
|
||||
let logger = build_logger(&movies, &reviews, &events);
|
||||
let logger = build_logger(&movies, &reviews);
|
||||
|
||||
let cmd = LogReviewCommand {
|
||||
rating: 6,
|
||||
|
||||
Reference in New Issue
Block a user