Add tax treatment classification for investment accounts with international support (#693)

* Add tax treatment support for accounts, investments, and cryptos

* Replace hardcoded region labels with I18n translations

* Add I18n support for subtype labels with fallback to hardcoded values

* fixed schema

---------

Co-authored-by: luckyPipewrench <luckypipewrench@proton.me>
This commit is contained in:
LPW
2026-01-18 11:29:02 -05:00
committed by GitHub
parent 6ec03e93f4
commit 64dc5c2fb8
14 changed files with 488 additions and 23 deletions

View File

@@ -0,0 +1,30 @@
require "test_helper"
class CryptoTest < ActiveSupport::TestCase
test "tax_treatment defaults to taxable" do
crypto = Crypto.new
assert_equal "taxable", crypto.tax_treatment
end
test "tax_treatment can be set to tax_deferred" do
crypto = Crypto.new(tax_treatment: :tax_deferred)
assert_equal "tax_deferred", crypto.tax_treatment
end
test "tax_treatment can be set to tax_exempt" do
crypto = Crypto.new(tax_treatment: :tax_exempt)
assert_equal "tax_exempt", crypto.tax_treatment
end
test "tax_treatment enum provides predicate methods" do
crypto = Crypto.new(tax_treatment: :taxable)
assert crypto.taxable?
assert_not crypto.tax_deferred?
assert_not crypto.tax_exempt?
crypto.tax_treatment = :tax_deferred
assert_not crypto.taxable?
assert crypto.tax_deferred?
assert_not crypto.tax_exempt?
end
end