mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-24 15:49:39 +02:00
Add security prices provider (Synth integration) (#1039)
* User tickers as primary lookup symbol instead of isin * Add security price provider * Fetch security prices in bulk to improve sync performance * Fetch prices in bulk, better mocking for tests
This commit is contained in:
parent
c70c8b6d86
commit
453a54e5e6
33 changed files with 584 additions and 118 deletions
|
@ -2,10 +2,18 @@ require "test_helper"
|
|||
require "ostruct"
|
||||
|
||||
class Provider::SynthTest < ActiveSupport::TestCase
|
||||
include ExchangeRateProviderInterfaceTest
|
||||
include ExchangeRateProviderInterfaceTest, SecurityPriceProviderInterfaceTest
|
||||
|
||||
setup do
|
||||
@subject = @synth = Provider::Synth.new("fookey")
|
||||
@subject = @synth = Provider::Synth.new(ENV["SYNTH_API_KEY"])
|
||||
end
|
||||
|
||||
test "fetches paginated securities prices" do
|
||||
VCR.use_cassette("synth/security_prices") do
|
||||
response = @synth.fetch_security_prices ticker: "AAPL", start_date: Date.iso8601("2024-01-01"), end_date: Date.iso8601("2024-08-01")
|
||||
|
||||
assert 213, response.size
|
||||
end
|
||||
end
|
||||
|
||||
test "retries then provides failed response" do
|
||||
|
@ -13,7 +21,7 @@ class Provider::SynthTest < ActiveSupport::TestCase
|
|||
|
||||
response = @synth.fetch_exchange_rate from: "USD", to: "MXN", date: Date.current
|
||||
|
||||
assert_match "Failed to fetch exchange rate from Provider::Synth", response.error.message
|
||||
assert_match "Failed to fetch data from Provider::Synth", response.error.message
|
||||
end
|
||||
|
||||
test "retrying, then raising on network error" do
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue