1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-19 21:29:38 +02:00
Maybe/test/controllers/import/rows_controller_test.rb

80 lines
2.1 KiB
Ruby
Raw Normal View History

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