1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-25 08:09:38 +02:00

Remove missing prices issue (#1390)

This commit is contained in:
Zach Gollwitzer 2024-10-29 14:55:46 -04:00 committed by GitHub
parent 7d8028b505
commit bf695972e4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 11 additions and 114 deletions

View file

@ -85,8 +85,6 @@ class Account::Holding::SyncerTest < ActiveSupport::TestCase
.once
.returns(fetched_prices)
@account.expects(:observe_missing_price).with(ticker: "AMZN", date: Date.current).once
run_sync_for(@account)
assert_holdings(expected)

View file

@ -89,12 +89,4 @@ class AccountTest < ActiveSupport::TestCase
assert_equal 10, account.holding_qty(security, date: 1.day.ago.to_date)
assert_equal 0, account.holding_qty(security, date: 2.days.ago.to_date)
end
test "can observe missing price" do
account = accounts(:investment)
assert_difference -> { account.issues.count } do
account.observe_missing_price(ticker: "AAPL", date: Date.current)
end
end
end

View file

@ -1,61 +0,0 @@
require "test_helper"
class Issue::PricesMissingTest < ActiveSupport::TestCase
setup do
@issue = Issue::PricesMissing.new
@account = Account.new(id: "123abc")
@issue.issuable = @account
end
test "stale? returns false when no prices are found" do
@issue.append_missing_price("AAPL", (Date.current - 5.days).to_s)
Security::Price.expects(:find_prices).returns([])
@account.expects(:owns_ticker?).with("AAPL").returns(true)
assert_not @issue.stale?
end
test "stale? returns true when all expected prices are found" do
start_date = Date.current - 5.days
@issue.append_missing_price("AAPL", start_date.to_s)
expected_prices = (start_date..Date.current).map { |date| { date: date } }
Security::Price.expects(:find_prices).returns(expected_prices)
@account.expects(:owns_ticker?).with("AAPL").returns(true)
assert @issue.stale?
end
test "stale? returns false when some prices are missing" do
start_date = Date.current - 5.days
@issue.append_missing_price("AAPL", start_date.to_s)
incomplete_prices = (start_date..Date.current - 2.days).map { |date| { date: date } }
Security::Price.expects(:find_prices).returns(incomplete_prices)
@account.expects(:owns_ticker?).with("AAPL").returns(true)
assert_not @issue.stale?
end
test "stale? returns true when the account doesn't own the ticker" do
@issue.append_missing_price("AAPL", (Date.current - 5.days).to_s)
@account.expects(:owns_ticker?).with("AAPL").returns(false)
assert @issue.stale?
end
test "stale? handles multiple tickers correctly" do
@issue.append_missing_price("AAPL", (Date.current - 5.days).to_s)
@issue.append_missing_price("GOOGL", (Date.current - 3.days).to_s)
@account.expects(:owns_ticker?).with("AAPL").returns(true)
@account.expects(:owns_ticker?).with("GOOGL").returns(true)
Security::Price.expects(:find_prices).with(ticker: "AAPL", start_date: Date.current - 5.days).returns([])
Security::Price.expects(:find_prices).with(ticker: "GOOGL", start_date: Date.current - 3.days).returns([])
assert_not @issue.stale?
end
end