mod common; use actualbudget_queries::actualbudget_transactions::{get_all_actualbudget_transactions, get_first_actualbudget_transaction_date}; use common::{db_url::DB_URL, get_reference_data::{get_accounts, get_categories}, transaction_matchers::get_transaction_matchers}; use diesel::{Connection, SqliteConnection}; #[test] fn given_test_database_when_get_all_transactions_then_return_transactions() { let connection = &mut SqliteConnection::establish(DB_URL).unwrap(); let accounts = get_accounts(connection); let categories = get_categories(connection); let transactions = get_all_actualbudget_transactions(connection); assert!(transactions.is_ok()); let transactions = transactions.unwrap(); let transaction_matchers = get_transaction_matchers(); assert_eq!(transaction_matchers.len(), transactions.len()); for transaction_matcher in transaction_matchers { assert!(transactions.iter().any(|t| transaction_matcher(t, &accounts, &categories))); } } #[test] fn given_test_database_when_get_first_transaction_date_then_return_01_aug_2024() { let connection = &mut SqliteConnection::establish(DB_URL).unwrap(); let date = get_first_actualbudget_transaction_date(connection); assert!(date.is_ok()); let date = date.unwrap(); assert_eq!("01", date.day()); assert_eq!("08", date.month()); assert_eq!("2024", date.year()); }