Multi-Currency Part 2 (#543)

* Support all currencies, handle outside DB

* Remove currencies from seed

* Fix account balance namespace

* Set default currency on authentication

* Cache currency instances

* Implement multi-currency syncs with tests

* Series fallback, passing tests

* Fix conflicts

* Make value group concrete class that works with currency values

* Fix migration conflict

* Update tests to expect multi-currency results

* Update account list to use group method

* Namespace updates

* Fetch unknown exchange rates from API

* Fix date range bug

* Ensure demo data works without external API

* Enforce cascades only at DB level
This commit is contained in:
Zach Gollwitzer
2024-03-21 13:39:10 -04:00
committed by GitHub
parent de0cba9fed
commit 110855d077
55 changed files with 1226 additions and 714 deletions

View File

@@ -87,4 +87,13 @@ class MoneyTest < ActiveSupport::TestCase
assert_equal "$1,000.90", Money.new(1000.899).format
assert_equal "€1.000,12", Money.new(1000.12, :eur).format
end
test "can exchange to another currency" do
er = exchange_rates(:today_usd_to_eur)
assert_equal Money.new(1000).exchange_to(:eur), Money.new(1000 * er.rate, :eur)
end
test "returns nil if exchange rate not available" do
assert_nil Money.new(1000).exchange_to(:jpy)
end
end