add 400+ unit tests for domain and application layers
Some checks failed
CI / Check / Test (push) Has been cancelled
Some checks failed
CI / Check / Test (push) Has been cancelled
Extract ReviewLogger trait to decouple import/integrations from diary::log_review (cross-module coupling smell). Add in-memory fakes for all repository ports, enabling isolated testing of every use case module without a database. Coverage: domain+application 22% → 80%, 427 tests.
This commit is contained in:
@@ -7,3 +7,7 @@ use domain::{
|
||||
pub async fn execute(ctx: &AppContext, id: PersonId) -> Result<Option<Person>, DomainError> {
|
||||
ctx.repos.person_query.get_by_id(&id).await
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
#[path = "tests/get.rs"]
|
||||
mod tests;
|
||||
|
||||
@@ -7,3 +7,7 @@ use domain::{
|
||||
pub async fn execute(ctx: &AppContext, id: PersonId) -> Result<PersonCredits, DomainError> {
|
||||
ctx.repos.person_query.get_credits(&id).await
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
#[path = "tests/get_credits.rs"]
|
||||
mod tests;
|
||||
|
||||
16
crates/application/src/person/tests/get.rs
Normal file
16
crates/application/src/person/tests/get.rs
Normal file
@@ -0,0 +1,16 @@
|
||||
use domain::models::PersonId;
|
||||
use uuid::Uuid;
|
||||
|
||||
use crate::person::get;
|
||||
use crate::test_helpers::TestContextBuilder;
|
||||
|
||||
#[tokio::test]
|
||||
async fn returns_none_for_unknown_person() {
|
||||
let ctx = TestContextBuilder::new().build();
|
||||
|
||||
let result = get::execute(&ctx, PersonId::from_uuid(Uuid::new_v4()))
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
assert!(result.is_none());
|
||||
}
|
||||
17
crates/application/src/person/tests/get_credits.rs
Normal file
17
crates/application/src/person/tests/get_credits.rs
Normal file
@@ -0,0 +1,17 @@
|
||||
use domain::models::PersonId;
|
||||
use uuid::Uuid;
|
||||
|
||||
use crate::person::get_credits;
|
||||
use crate::test_helpers::TestContextBuilder;
|
||||
|
||||
#[tokio::test]
|
||||
async fn returns_empty_credits() {
|
||||
let ctx = TestContextBuilder::new().build();
|
||||
|
||||
let result = get_credits::execute(&ctx, PersonId::from_uuid(Uuid::new_v4()))
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
assert!(result.cast.is_empty());
|
||||
assert!(result.crew.is_empty());
|
||||
}
|
||||
Reference in New Issue
Block a user