1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-24 07:39:39 +02:00

Data provider simplification, tests, and documentation (#1997)

* Ignore env.test from source control

* Simplification of providers interface

* Synth tests

* Update money to use new find rates method

* Remove unused issues code

* Additional issue feature removals

* Update price data fetching and tests

* Update documentation for providers

* Security test fixes

* Fix self host test

* Update synth usage data access

* Remove AI pr schema changes
This commit is contained in:
Zach Gollwitzer 2025-03-17 11:54:53 -04:00 committed by GitHub
parent dd75cadebc
commit f65b93a352
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
95 changed files with 2014 additions and 1638 deletions

View file

@ -3,20 +3,34 @@ require "test_helper"
module ExchangeRateProviderInterfaceTest
extend ActiveSupport::Testing::Declarative
test "exchange rate provider interface" do
assert_respond_to @subject, :healthy?
assert_respond_to @subject, :fetch_exchange_rate
assert_respond_to @subject, :fetch_exchange_rates
end
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")
)
test "exchange rate provider response contract" do
VCR.use_cassette "synth/exchange_rate" do
response = @subject.fetch_exchange_rate from: "USD", to: "MXN", date: Date.iso8601("2024-08-01")
rate = response.data.rate
assert_respond_to response, :rate
assert_respond_to response, :success?
assert_respond_to response, :error
assert_respond_to response, :raw_response
assert_kind_of ExchangeRate, rate
assert_equal "USD", rate.from_currency
assert_equal "GBP", rate.to_currency
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 213, response.data.rates.count # 213 days between 01.01.2024 and 31.07.2024
end
end
private
def vcr_key_prefix
@subject.class.name.demodulize.underscore
end
end