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::{
|
||||
events::DomainEvent,
|
||||
ports::MovieCommand,
|
||||
testing::{InMemoryStore, NoopEventPublisher, RefusingWatchlistRepository},
|
||||
testing::{InMemoryStore, RefusingWatchlistRepository},
|
||||
};
|
||||
|
||||
use application::watchlist::{add, commands::AddToWatchlistCommand, deps::WatchlistAddDeps};
|
||||
@@ -16,7 +16,6 @@ fn make_deps(movies: Arc<InMemoryStore>, watchlist: Arc<InMemoryStore>) -> Watch
|
||||
movie_query: movies,
|
||||
metadata: Arc::new(domain::testing::FakeMetadataClient),
|
||||
watchlist,
|
||||
event_publisher: NoopEventPublisher::new(),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +26,7 @@ async fn adding_to_the_watchlist_resolves_the_movie_and_saves_the_entry() {
|
||||
|
||||
let movie = test_movie_with_year("The Thing", 1982);
|
||||
let movie_uuid = movie.id().value();
|
||||
movies.upsert_movie(&movie).await.unwrap();
|
||||
movies.upsert_movie(&movie, &[]).await.unwrap();
|
||||
|
||||
let deps = make_deps(Arc::clone(&movies), Arc::clone(&watchlist));
|
||||
|
||||
@@ -46,7 +45,7 @@ async fn adding_a_movie_already_on_the_watchlist_is_idempotent() {
|
||||
let movie = test_movie_with_year("RoboCop", 1987);
|
||||
let movie_uuid = movie.id().value();
|
||||
let user_id = uuid::Uuid::new_v4();
|
||||
movies.upsert_movie(&movie).await.unwrap();
|
||||
movies.upsert_movie(&movie, &[]).await.unwrap();
|
||||
|
||||
let deps = make_deps(Arc::clone(&movies), Arc::clone(&watchlist));
|
||||
|
||||
@@ -98,7 +97,7 @@ async fn adding_the_same_movie_to_a_watchlist_twice_keeps_a_single_entry_and_suc
|
||||
let movie = test_movie_with_year("Heat", 1995);
|
||||
let movie_uuid = movie.id().value();
|
||||
let user_id = uuid::Uuid::new_v4();
|
||||
movies.upsert_movie(&movie).await.unwrap();
|
||||
movies.upsert_movie(&movie, &[]).await.unwrap();
|
||||
let deps = make_deps(Arc::clone(&movies), Arc::clone(&movies));
|
||||
|
||||
for _ in 0..2 {
|
||||
@@ -114,7 +113,7 @@ async fn adding_the_same_movie_to_a_watchlist_twice_keeps_a_single_entry_and_suc
|
||||
async fn adding_an_entry_records_the_entry_and_its_event_together() {
|
||||
let movies = InMemoryStore::new();
|
||||
let movie = test_movie_with_year("Heat", 1995);
|
||||
movies.upsert_movie(&movie).await.unwrap();
|
||||
movies.upsert_movie(&movie, &[]).await.unwrap();
|
||||
let deps = make_deps(Arc::clone(&movies), Arc::clone(&movies));
|
||||
|
||||
add::execute(
|
||||
@@ -137,7 +136,7 @@ async fn adding_an_entry_records_the_entry_and_its_event_together() {
|
||||
async fn a_refused_add_propagates_and_records_nothing() {
|
||||
let movies = InMemoryStore::new();
|
||||
let movie = test_movie_with_year("Heat", 1995);
|
||||
movies.upsert_movie(&movie).await.unwrap();
|
||||
movies.upsert_movie(&movie, &[]).await.unwrap();
|
||||
let deps = WatchlistAddDeps {
|
||||
watchlist: Arc::new(RefusingWatchlistRepository),
|
||||
..make_deps(Arc::clone(&movies), Arc::clone(&movies))
|
||||
|
||||
Reference in New Issue
Block a user