Add Interactive Brokers Provider (#1722)

* Display multi-currency holdings correctly

* Implement IBKR provider

* Fix: Use historical exchange rate for historical prices

* Add brokerage exchange rate for trades

* Sync historical balances from IBKR

* Add logos in activity history

* Fix privacy mode blur in account view

* Improve IBKR XML Flex report parser errors
This commit is contained in:
Gian-Reto Tarnutzer
2026-05-12 23:45:19 +02:00
committed by GitHub
parent 3c4c32584a
commit ce5d7dd736
81 changed files with 3838 additions and 59 deletions

View File

@@ -0,0 +1,28 @@
require "test_helper"
class Transaction::ActivitySecurityPreloaderTest < ActiveSupport::TestCase
test "preloads activity securities for transactions" do
transaction = Transaction.new(extra: { "security_id" => securities(:aapl).id })
Transaction::ActivitySecurityPreloader.new([ transaction ]).preload
assert_equal securities(:aapl), transaction.activity_security
end
test "preloads activity securities for entry collections" do
transaction = Transaction.new(extra: { "security_id" => securities(:aapl).id })
entry = Entry.new(account: accounts(:depository), entryable: transaction, date: Date.current, name: "Dividend", amount: 10, currency: "USD")
Transaction::ActivitySecurityPreloader.new([ entry ]).preload
assert_equal securities(:aapl), transaction.activity_security
end
test "sets nil when the referenced security cannot be found" do
transaction = Transaction.new(extra: { "security_id" => SecureRandom.uuid })
Transaction::ActivitySecurityPreloader.new([ transaction ]).preload
assert_nil transaction.activity_security
end
end