mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-21 14:19:39 +02:00
* 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
89 lines
2.2 KiB
Ruby
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
|