diff options
| author | Joe Carstairs <me@joeac.net> | 2024-11-17 16:37:38 +0000 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2024-11-17 16:37:38 +0000 |
| commit | 4967cbabfc2fddc903dfaa17b11b2baa006fb218 (patch) | |
| tree | c9672dc18e78e065ec3c0cc26032d4b91df153e9 /rust/actualbudget_queries/tests | |
| parent | e044c796405c1800289160cb50d295cf2eda76cf (diff) | |
actualbudget queries integration tests
Diffstat (limited to 'rust/actualbudget_queries/tests')
| -rw-r--r-- | rust/actualbudget_queries/tests/actualbudget_accounts.rs | 32 | ||||
| -rw-r--r-- | rust/actualbudget_queries/tests/actualbudget_categories.rs | 23 | ||||
| -rw-r--r-- | rust/actualbudget_queries/tests/actualbudget_transactions.rs | 29 | ||||
| -rw-r--r-- | rust/actualbudget_queries/tests/actualbudget_zero_budgets.rs | 16 | ||||
| -rw-r--r-- | rust/actualbudget_queries/tests/common.rs | 1 | ||||
| -rw-r--r-- | rust/actualbudget_queries/tests/resources/actualbudget_test_db.sqlite | bin | 0 -> 528384 bytes | |||
| -rw-r--r-- | rust/actualbudget_queries/tests/resources/actualbudget_test_db_metadata.json | 1 |
7 files changed, 102 insertions, 0 deletions
diff --git a/rust/actualbudget_queries/tests/actualbudget_accounts.rs b/rust/actualbudget_queries/tests/actualbudget_accounts.rs new file mode 100644 index 0000000..a761c4f --- /dev/null +++ b/rust/actualbudget_queries/tests/actualbudget_accounts.rs @@ -0,0 +1,32 @@ +mod common; + +use actualbudget_queries::actualbudget_accounts::{get_all_actualbudget_accounts, get_category_transfers_account}; +use common::DB_URL; +use diesel::{Connection, SqliteConnection}; + +#[test] +fn given_test_database_when_get_all_accounts_then_return_accounts() { + let connection = &mut SqliteConnection::establish(DB_URL).unwrap(); + + let accounts = get_all_actualbudget_accounts(connection); + + assert!(accounts.is_ok()); + let accounts = accounts.unwrap(); + assert_eq!(3, accounts.len()); + assert!(accounts.iter().any(|a| a.name == "My bank account")); + assert!(accounts.iter().any(|a| a.name == "My cash account")); + assert!(accounts.iter().any(|a| a.name == "Category transfers")); +} + +#[test] +fn given_test_database_when_get_category_transfer_account_then_return_category_transfer_account() { + let connection = &mut SqliteConnection::establish(DB_URL).unwrap(); + + let account = get_category_transfers_account(connection); + + assert!(account.is_ok()); + let account = account.unwrap(); + assert!(account.is_some()); + let account = account.unwrap(); + assert!(account.name == "Category transfers"); +} diff --git a/rust/actualbudget_queries/tests/actualbudget_categories.rs b/rust/actualbudget_queries/tests/actualbudget_categories.rs new file mode 100644 index 0000000..5cc619f --- /dev/null +++ b/rust/actualbudget_queries/tests/actualbudget_categories.rs @@ -0,0 +1,23 @@ +mod common; + +use actualbudget_queries::actualbudget_categories::get_all_actualbudget_categories; +use common::DB_URL; +use diesel::{Connection, SqliteConnection}; + +#[test] +fn given_test_database_when_get_all_categories_then_return_categories() { + let connection = &mut SqliteConnection::establish(DB_URL).unwrap(); + + let categories = get_all_actualbudget_categories(connection); + + assert!(categories.is_ok()); + let categories = categories.unwrap(); + assert_eq!(7, categories.len()); + assert!(categories.iter().any(|a| a.name == "Food")); + assert!(categories.iter().any(|a| a.name == "General")); + assert!(categories.iter().any(|a| a.name == "Bills")); + assert!(categories.iter().any(|a| a.name == "Bills (Flexible)")); + assert!(categories.iter().any(|a| a.name == "Savings")); + assert!(categories.iter().any(|a| a.name == "Starting Balances")); + assert!(categories.iter().any(|a| a.name == "Income")); +} diff --git a/rust/actualbudget_queries/tests/actualbudget_transactions.rs b/rust/actualbudget_queries/tests/actualbudget_transactions.rs new file mode 100644 index 0000000..0321d73 --- /dev/null +++ b/rust/actualbudget_queries/tests/actualbudget_transactions.rs @@ -0,0 +1,29 @@ +mod common; + +use actualbudget_queries::actualbudget_transactions::{get_all_actualbudget_transactions, get_first_actualbudget_transaction_date}; +use common::DB_URL; +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 transactions = get_all_actualbudget_transactions(connection); + + assert!(transactions.is_ok()); + let transactions = transactions.unwrap(); + assert_eq!(15, transactions.len()); +} + +#[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()); +} diff --git a/rust/actualbudget_queries/tests/actualbudget_zero_budgets.rs b/rust/actualbudget_queries/tests/actualbudget_zero_budgets.rs new file mode 100644 index 0000000..c4e79be --- /dev/null +++ b/rust/actualbudget_queries/tests/actualbudget_zero_budgets.rs @@ -0,0 +1,16 @@ +mod common; + +use actualbudget_queries::actualbudget_zero_budgets::get_all_actualbudget_zero_budgets; +use common::DB_URL; +use diesel::{Connection, SqliteConnection}; + +#[test] +fn given_test_database_when_get_all_zero_budgets_then_return_zero_budgets() { + let connection = &mut SqliteConnection::establish(DB_URL).unwrap(); + + let zero_budgets = get_all_actualbudget_zero_budgets(connection); + + assert!(zero_budgets.is_ok()); + let zero_budgets = zero_budgets.unwrap(); + assert_eq!(25, zero_budgets.len()); +} diff --git a/rust/actualbudget_queries/tests/common.rs b/rust/actualbudget_queries/tests/common.rs new file mode 100644 index 0000000..ff778a8 --- /dev/null +++ b/rust/actualbudget_queries/tests/common.rs @@ -0,0 +1 @@ +pub const DB_URL: &str = "tests/resources/actualbudget_test_db.sqlite"; diff --git a/rust/actualbudget_queries/tests/resources/actualbudget_test_db.sqlite b/rust/actualbudget_queries/tests/resources/actualbudget_test_db.sqlite Binary files differnew file mode 100644 index 0000000..e22762f --- /dev/null +++ b/rust/actualbudget_queries/tests/resources/actualbudget_test_db.sqlite diff --git a/rust/actualbudget_queries/tests/resources/actualbudget_test_db_metadata.json b/rust/actualbudget_queries/tests/resources/actualbudget_test_db_metadata.json new file mode 100644 index 0000000..c323ad6 --- /dev/null +++ b/rust/actualbudget_queries/tests/resources/actualbudget_test_db_metadata.json @@ -0,0 +1 @@ +{"id":"My-Finances-1-36ec11a","budgetName":"My Finances 1","userId":"fec9ba17-c260-4f55-8d44-676ef0ec5da9","lastScheduleRun":"2024-11-17","resetClock":true}
\ No newline at end of file |
