mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-19 13:19:39 +02:00
* Allow CSV imports to be configured to a single account or multiple accounts * Initialize import directly from accounts page * Fix brakeman warnings * Fix schema * Fix Synth check
79 lines
2.1 KiB
Ruby
79 lines
2.1 KiB
Ruby
require "test_helper"
|
|
|
|
class Import::RowsControllerTest < ActionDispatch::IntegrationTest
|
|
setup do
|
|
sign_in @user = users(:family_admin)
|
|
|
|
@import = imports(:transaction)
|
|
@row = import_rows(:one)
|
|
end
|
|
|
|
test "show transaction row" do
|
|
get import_row_path(@import, @row)
|
|
|
|
assert_row_fields(@row, [ :date, :name, :amount, :currency, :category, :tags, :account, :notes ])
|
|
|
|
assert_response :success
|
|
end
|
|
|
|
test "show trade row" do
|
|
import = @user.family.imports.create!(type: "TradeImport")
|
|
row = import.rows.create!(date: "01/01/2024", currency: "USD", qty: 10, price: 100, ticker: "AAPL")
|
|
|
|
get import_row_path(import, row)
|
|
|
|
assert_row_fields(row, [ :date, :ticker, :qty, :price, :currency, :account, :name, :account ])
|
|
|
|
assert_response :success
|
|
end
|
|
|
|
test "show account row" do
|
|
import = @user.family.imports.create!(type: "AccountImport")
|
|
row = import.rows.create!(name: "Test Account", amount: 10000, currency: "USD")
|
|
|
|
get import_row_path(import, row)
|
|
|
|
assert_row_fields(row, [ :entity_type, :name, :amount, :currency ])
|
|
|
|
assert_response :success
|
|
end
|
|
|
|
test "show mint row" do
|
|
import = @user.family.imports.create!(type: "MintImport")
|
|
row = import.rows.create!(date: "01/01/2024", amount: 100, currency: "USD")
|
|
|
|
get import_row_path(import, row)
|
|
|
|
assert_row_fields(row, [ :date, :name, :amount, :currency, :category, :tags, :account, :notes ])
|
|
|
|
assert_response :success
|
|
end
|
|
|
|
test "update" do
|
|
patch import_row_path(@import, @row), params: {
|
|
import_row: {
|
|
account: "Checking Account",
|
|
date: "2024-01-01",
|
|
qty: nil,
|
|
ticker: nil,
|
|
price: nil,
|
|
amount: 100,
|
|
currency: "USD",
|
|
name: "Test",
|
|
category: "Food",
|
|
tags: "grocery, dinner",
|
|
entity_type: nil,
|
|
notes: "Weekly shopping"
|
|
}
|
|
}
|
|
|
|
assert_redirected_to import_row_path(@import, @row)
|
|
end
|
|
|
|
private
|
|
def assert_row_fields(row, fields)
|
|
fields.each do |field|
|
|
assert_select "turbo-frame##{dom_id(row, field)}"
|
|
end
|
|
end
|
|
end
|