From 430f4c1ccb26c8ebe9a6d286012086795e495bb7 Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Wed, 30 Oct 2024 08:58:38 +0000 Subject: Tests queries::budget_updates::get_most_recent_budget_update_date_with_category_id --- backend/core/tests/queries/budget_updates.rs | 53 ++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) (limited to 'backend/core/tests') diff --git a/backend/core/tests/queries/budget_updates.rs b/backend/core/tests/queries/budget_updates.rs index ae580e7..503e51c 100644 --- a/backend/core/tests/queries/budget_updates.rs +++ b/backend/core/tests/queries/budget_updates.rs @@ -251,6 +251,55 @@ fn given_many_budget_updates_when_get_first_with_date_then_return_any_with_date( } #[test] -fn todo() { - todo!("test get_most_recent_with_category_id"); +fn given_many_budget_updates_when_get_most_recent_with_category_id_then_return_correct_date() { + let context = TestContext::new(); + let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); + insert_prerequisite_data(connection); + let budget_updates = [ + make_fake_budget_update_builder(0) + .category_id(0) + .date("2024-12-25".parse().unwrap()) + .build().unwrap(), + make_fake_budget_update_builder(1) + .category_id(0) + .date("2020-12-26".parse().unwrap()) + .build().unwrap(), + make_fake_budget_update_builder(2) + .category_id(1) + .date("2020-12-27".parse().unwrap()) + .build().unwrap(), + ]; + let _ = queries::budget_updates::insert_budget_updates(&budget_updates, connection).unwrap(); + + let most_recent_with_category = queries::budget_updates::get_most_recent_budget_update_date_with_category_id( + 0, connection, + ); + + assert!(most_recent_with_category.is_ok()); + let most_recent_with_category = most_recent_with_category.unwrap(); + assert!(most_recent_with_category .is_some()); + let most_recent_with_category = most_recent_with_category.unwrap(); + assert_eq!(most_recent_with_category, budget_updates[1].date); +} + +#[test] +fn given_budget_update_when_get_most_recent_with_different_category_id_then_return_none() { + let context = TestContext::new(); + let connection = &mut SqliteConnection::establish(&context.db_url).unwrap(); + insert_prerequisite_data(connection); + let budget_updates = [ + make_fake_budget_update_builder(0) + .category_id(1) + .date("2020-12-27".parse().unwrap()) + .build().unwrap(), + ]; + let _ = queries::budget_updates::insert_budget_updates(&budget_updates, connection).unwrap(); + + let most_recent_with_category = queries::budget_updates::get_most_recent_budget_update_date_with_category_id( + 0, connection, + ); + + assert!(most_recent_with_category.is_ok()); + let most_recent_with_category = most_recent_with_category.unwrap(); + assert!(most_recent_with_category .is_none()); } -- cgit v1.2.3