summary history files

desktop/backend/services/transaction_service_test.go
package services

import (
	"os"
	"testing"
)

func TestGetTransaction(t *testing.T) {
	t.Run("standard get transaction", func(t *testing.T) {
		s, err := TestSetupApp(t)
		if err != nil {
			t.Fatal(err)
		}
		defer os.Remove(s.DB.dbFile)

		transaction, err := TestCreateTestTransactions(t, s)
		if err != nil {
			t.Fatal(err)
		}

		transactionResponse := s.Transactions.GetTransaction(transaction.ID)
		if !transactionResponse.Success {
			t.Fatal()
		}

		if transactionResponse.Msg != "default" {
			t.Fatal()
		}

		if transactionResponse.Data.Memo != "testTransactionMemo" {
			t.Fatal(transactionResponse.Data.Memo)
		}

		if len(transactionResponse.Data.Splits) == 0 {
			t.Fatal()
		}
	})
}

func TestSplits(t *testing.T) {
	var err error

	s, err := TestSetupApp(t)
	if err != nil {
		t.Fatal(err)
	}
	defer os.Remove(s.DB.dbFile)

	transaction, err := s.Transactions.createTransaction("foo", "2024-05-22T20:36:00.000Z")
	if err != nil {
		t.Fatal(err)
	}

	expenseChildAccountType, err := s.Accounts.getChildAccountType("expense")
	if err != nil {
		t.Fatal(err)
	}

	account, err := s.Accounts.createAccount("test", "test", expenseChildAccountType.ID)
	if err != nil {
		t.Fatal(err)
	}

	splitType := s.Splits.CreateSplit(transaction.ID, account.ID, float64(0))
	if !splitType.Success {
		t.Fatal()
	}

	transactionResponse := s.Transactions.GetTransaction(transaction.ID)
	if transactionResponse.Data.Memo != "foo" {
		t.Fatal()
	}

	if transactionResponse.Data.Splits[0].Account.Name != "test" {
		t.Fatal()
	}
}