test: shared factories and command builders

This commit is contained in:
2026-10-25 22:08:17 +01:00
parent 2ac1d4e0cf
commit 51d92e08a7
58 changed files with 784 additions and 1344 deletions

View File

@@ -1,39 +1,34 @@
use super::*;
use crate::testing::test_goal;
use crate::value_objects::UserId;
fn make_goal(year: u16, target: u32) -> Result<Goal, DomainError> {
Goal::new(UserId::generate(), year, target, GoalType::Movies)
}
#[test]
fn new_goal_valid() {
let g = make_goal(2024, 52);
assert!(g.is_ok());
let g = g.unwrap();
let g = test_goal(&UserId::generate(), 2024, 52);
assert_eq!(g.year(), 2024);
assert_eq!(g.target_count(), 52);
}
#[test]
fn new_goal_rejects_year_before_2020() {
assert!(make_goal(2019, 10).is_err());
assert!(Goal::new(UserId::generate(), 2019, 10, GoalType::Movies).is_err());
}
#[test]
fn new_goal_rejects_zero_target() {
assert!(make_goal(2024, 0).is_err());
assert!(Goal::new(UserId::generate(), 2024, 0, GoalType::Movies).is_err());
}
#[test]
fn update_target_valid() {
let mut g = make_goal(2024, 10).unwrap();
let mut g = test_goal(&UserId::generate(), 2024, 10);
assert!(g.update_target(50).is_ok());
assert_eq!(g.target_count(), 50);
}
#[test]
fn update_target_rejects_zero() {
let mut g = make_goal(2024, 10).unwrap();
let mut g = test_goal(&UserId::generate(), 2024, 10);
assert!(g.update_target(0).is_err());
}
@@ -52,7 +47,7 @@ fn from_persistence_preserves_fields() {
#[test]
fn percentage_calculation() {
let g = make_goal(2024, 100).unwrap();
let g = test_goal(&UserId::generate(), 2024, 100);
let wp = GoalWithProgress {
goal: g,
current_count: 50,
@@ -62,7 +57,7 @@ fn percentage_calculation() {
#[test]
fn percentage_caps_at_100() {
let g = make_goal(2024, 10).unwrap();
let g = test_goal(&UserId::generate(), 2024, 10);
let wp = GoalWithProgress {
goal: g,
current_count: 20,
@@ -72,7 +67,7 @@ fn percentage_caps_at_100() {
#[test]
fn is_complete() {
let g = make_goal(2024, 10).unwrap();
let g = test_goal(&UserId::generate(), 2024, 10);
let wp = GoalWithProgress {
goal: g,
current_count: 10,
@@ -82,7 +77,7 @@ fn is_complete() {
#[test]
fn is_not_complete() {
let g = make_goal(2024, 10).unwrap();
let g = test_goal(&UserId::generate(), 2024, 10);
let wp = GoalWithProgress {
goal: g,
current_count: 9,