Lines
100 %
Functions
Branches
//! Tests for mutation-form builders (delete-transaction, set-account-tag, set-transaction-tag).
use crate::eval::{
build_convert_amount_form, build_delete_transaction_form, build_set_account_tag_form,
build_set_transaction_tag_form,
};
#[test]
fn build_delete_transaction_form_produces_correct_form() {
let id = "550e8400-e29b-41d4-a716-446655440001";
let form = build_delete_transaction_form(id);
assert_eq!(form, format!("(delete-transaction \"{id}\")"));
}
fn build_delete_transaction_form_escapes_special_chars() {
let form = build_delete_transaction_form("id\"with\\quotes");
assert_eq!(form, r#"(delete-transaction "id\"with\\quotes")"#);
fn build_set_account_tag_form_produces_correct_form() {
let id = "550e8400-e29b-41d4-a716-446655440002";
let form = build_set_account_tag_form(id, "category", "expenses");
assert_eq!(
form,
format!("(set-account-tag \"{id}\" \"category\" \"expenses\")")
);
fn build_set_account_tag_form_escapes_name_and_value() {
let form = build_set_account_tag_form("abc", r#"k"ey"#, r#"val\ue"#);
assert_eq!(form, r#"(set-account-tag "abc" "k\"ey" "val\\ue")"#);
fn build_set_transaction_tag_form_produces_correct_form() {
let id = "550e8400-e29b-41d4-a716-446655440003";
let form = build_set_transaction_tag_form(id, "name", "groceries");
format!("(set-transaction-tag \"{id}\" \"name\" \"groceries\")")
fn build_set_transaction_tag_form_escapes_all_args() {
let form = build_set_transaction_tag_form("t\nid", "na\nme", "va\nlue");
assert_eq!(form, r#"(set-transaction-tag "t\nid" "na\nme" "va\nlue")"#);
fn build_convert_amount_form_produces_correct_form() {
let form = build_convert_amount_form("9/2", "uuid-from", "uuid-to");
assert_eq!(form, r#"(convert-amount "9/2" "uuid-from" "uuid-to")"#);
fn build_convert_amount_form_integer_amount() {
let form = build_convert_amount_form("90", "uuid-a", "uuid-b");
assert_eq!(form, r#"(convert-amount "90" "uuid-a" "uuid-b")"#);
fn build_convert_amount_form_escapes_special_chars() {
let form = build_convert_amount_form("1/3", "from\"uuid", "to\\uuid");
assert_eq!(form, r#"(convert-amount "1/3" "from\"uuid" "to\\uuid")"#);