1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-19 05:09:38 +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

@ -0,0 +1,62 @@
require "test_helper"
module SecurityProviderInterfaceTest
extend ActiveSupport::Testing::Declarative
test "fetches security price" do
aapl = securities(:aapl)
VCR.use_cassette("#{vcr_key_prefix}/security_price") do
response = @subject.fetch_security_price(aapl, date: Date.iso8601("2024-08-01"))
assert response.success?
assert response.data.price.present?
end
end
test "fetches paginated securities prices" do
aapl = securities(:aapl)
VCR.use_cassette("#{vcr_key_prefix}/security_prices") do
response = @subject.fetch_security_prices(
aapl,
start_date: Date.iso8601("2024-01-01"),
end_date: Date.iso8601("2024-08-01")
)
assert response.success?
assert 213, response.data.prices.count
end
end
test "searches securities" do
VCR.use_cassette("#{vcr_key_prefix}/security_search") do
response = @subject.search_securities("AAPL", country_code: "US")
securities = response.data.securities
assert securities.any?
security = securities.first
assert_kind_of Security, security
assert_equal "AAPL", security.ticker
end
end
test "fetches security info" do
aapl = securities(:aapl)
VCR.use_cassette("#{vcr_key_prefix}/security_info") do
response = @subject.fetch_security_info(aapl)
info = response.data
assert_equal "AAPL", info.ticker
assert_equal "Apple Inc.", info.name
assert info.logo_url.present?
assert_equal "common stock", info.kind
assert info.description.present?
end
end
private
def vcr_key_prefix
@subject.class.name.demodulize.underscore
end
end