1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-21 14:19:39 +02:00
Maybe/test/system/transfers_test.rb
Zach Gollwitzer 65db49273c
Some checks are pending
Publish Docker image / ci (push) Waiting to run
Publish Docker image / Build docker image (push) Blocked by required conditions
Account Activity View + Account Forms (#1406)
* Remove balance mode, sketch out refactor

* Activity view checkpoint

* Entry partials, checkpoint

* Finish txn partial

* Give entries context when editing for different turbo responses

* Calculate change of balance for each entry

* Account tabs consolidation

* Translations, linting, brakeman updates

* Account actions concern

* Finalize forms, get account system tests passing

* Get tests passing

* Lint, rubocop, schema updates

* Improve routing and stream responses

* Fix broken routes

* Add import option for adding accounts

* Fix system test

* Fix test specificity

* Fix sparklines

* Improve account redirects
2024-11-04 20:27:31 -05:00

89 lines
2.2 KiB
Ruby

require "application_system_test_case"
class TransfersTest < ApplicationSystemTestCase
setup do
sign_in @user = users(:family_admin)
visit transactions_url
end
test "can create a transfer" do
checking_name = accounts(:depository).name
savings_name = accounts(:credit_card).name
transfer_date = Date.current
click_on "New transaction"
# Will navigate to different route in same modal
click_on "Transfer"
assert_text "New transfer"
select checking_name, from: "From"
select savings_name, from: "To"
fill_in "account_transfer[amount]", with: 500
fill_in "Date", with: transfer_date
click_button "Create transfer"
within "#entry-group-" + transfer_date.to_s do
assert_text "Transfer from"
end
end
test "can match 2 transactions and create a transfer" do
transfer_date = Date.current
outflow = accounts(:depository).entries.create! \
name: "Outflow from checking account",
date: transfer_date,
amount: 100,
currency: "USD",
entryable: Account::Transaction.new
inflow = accounts(:credit_card).entries.create! \
name: "Inflow to cc account",
date: transfer_date,
amount: -100,
currency: "USD",
entryable: Account::Transaction.new
visit transactions_url
transaction_entry_checkbox(inflow).check
transaction_entry_checkbox(outflow).check
bulk_transfer_action_button.click
click_on "Mark as transfers"
within "#entry-group-" + transfer_date.to_s do
assert_text "Outflow"
assert_text "Inflow"
end
end
test "can mark a single transaction as a transfer" do
txn = @user.family.entries.account_transactions.reverse_chronological.first
within "#" + dom_id(txn) do
assert_text txn.account_transaction.category.name || "Uncategorized"
end
transaction_entry_checkbox(txn).check
bulk_transfer_action_button.click
click_on "Mark as transfers"
within "#" + dom_id(txn) do
assert_no_text "Uncategorized"
end
end
private
def transaction_entry_checkbox(transaction_entry)
find("#" + dom_id(transaction_entry, "selection"))
end
def bulk_transfer_action_button
find("#bulk-transfer-btn")
end
end