2024-06-19 06:52:08 -04:00
|
|
|
require "test_helper"
|
|
|
|
|
2025-01-07 09:41:24 -05:00
|
|
|
class TransfersControllerTest < ActionDispatch::IntegrationTest
|
2024-06-19 06:52:08 -04:00
|
|
|
setup do
|
|
|
|
sign_in users(:family_admin)
|
|
|
|
end
|
|
|
|
|
|
|
|
test "should get new" do
|
2025-01-07 09:41:24 -05:00
|
|
|
get new_transfer_url
|
2024-06-19 06:52:08 -04:00
|
|
|
assert_response :success
|
|
|
|
end
|
|
|
|
|
|
|
|
test "can create transfers" do
|
2025-01-07 09:41:24 -05:00
|
|
|
assert_difference "Transfer.count", 1 do
|
|
|
|
post transfers_url, params: {
|
|
|
|
transfer: {
|
2024-07-10 11:22:59 -04:00
|
|
|
from_account_id: accounts(:depository).id,
|
|
|
|
to_account_id: accounts(:credit_card).id,
|
2024-06-19 06:52:08 -04:00
|
|
|
date: Date.current,
|
|
|
|
amount: 100,
|
|
|
|
name: "Test Transfer"
|
|
|
|
}
|
|
|
|
}
|
2024-11-15 13:49:37 -05:00
|
|
|
assert_enqueued_with job: SyncJob
|
2024-06-19 06:52:08 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2025-01-27 16:56:46 -05:00
|
|
|
test "soft deletes transfer" do
|
|
|
|
assert_difference -> { Transfer.count }, -1 do
|
2025-01-07 09:41:24 -05:00
|
|
|
delete transfer_url(transfers(:one))
|
2024-06-19 06:52:08 -04:00
|
|
|
end
|
|
|
|
end
|
2025-04-04 21:45:47 +05:30
|
|
|
|
|
|
|
test "can add notes to transfer" do
|
|
|
|
transfer = transfers(:one)
|
|
|
|
assert_nil transfer.notes
|
|
|
|
|
|
|
|
patch transfer_url(transfer), params: { transfer: { notes: "Test notes" } }
|
|
|
|
|
|
|
|
assert_redirected_to transactions_url
|
|
|
|
assert_equal "Transfer updated", flash[:notice]
|
|
|
|
assert_equal "Test notes", transfer.reload.notes
|
|
|
|
end
|
2025-04-14 15:05:25 +02:00
|
|
|
|
|
|
|
test "handles rejection without FrozenError" do
|
|
|
|
transfer = transfers(:one)
|
|
|
|
|
|
|
|
assert_difference "Transfer.count", -1 do
|
|
|
|
patch transfer_url(transfer), params: {
|
|
|
|
transfer: {
|
|
|
|
status: "rejected"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
|
|
|
assert_redirected_to transactions_url
|
|
|
|
assert_equal "Transfer updated", flash[:notice]
|
|
|
|
|
|
|
|
# Verify the transfer was actually destroyed
|
|
|
|
assert_raises(ActiveRecord::RecordNotFound) do
|
|
|
|
transfer.reload
|
|
|
|
end
|
|
|
|
end
|
2024-06-19 06:52:08 -04:00
|
|
|
end
|