1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-19 13:19:39 +02:00
Maybe/test/interfaces/exchange_rate_provider_interface_test.rb
Zach Gollwitzer 6dc1d22672
Market data sync refinements (#2252)
* Exchange rate syncer implementation

* Security price syncer

* Fix issues with provider API

* Add back prod schedule

* Add back price and exchange rate syncs to account syncs

* Remove unused stock_exchanges table
2025-05-16 14:17:56 -04:00

38 lines
1 KiB
Ruby

require "test_helper"
module ExchangeRateProviderInterfaceTest
extend ActiveSupport::Testing::Declarative
test "fetches single exchange rate" do
VCR.use_cassette("#{vcr_key_prefix}/exchange_rate") do
response = @subject.fetch_exchange_rate(
from: "USD",
to: "GBP",
date: Date.parse("01.01.2024")
)
rate = response.data
assert_equal "USD", rate.from
assert_equal "GBP", rate.to
assert rate.date.is_a?(Date)
assert_in_delta 0.78, rate.rate, 0.01
end
end
test "fetches paginated exchange_rate historical data" do
VCR.use_cassette("#{vcr_key_prefix}/exchange_rates") do
response = @subject.fetch_exchange_rates(
from: "USD", to: "GBP", start_date: Date.parse("01.01.2024"), end_date: Date.parse("31.07.2024")
)
assert_equal 213, response.data.count # 213 days between 01.01.2024 and 31.07.2024
assert response.data.first.date.is_a?(Date)
end
end
private
def vcr_key_prefix
@subject.class.name.demodulize.underscore
end
end