summaryrefslogtreecommitdiff
path: root/backend/tests
diff options
context:
space:
mode:
Diffstat (limited to 'backend/tests')
-rw-r--r--backend/tests/test_api.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/backend/tests/test_api.py b/backend/tests/test_api.py
index 66c021f..af43975 100644
--- a/backend/tests/test_api.py
+++ b/backend/tests/test_api.py
@@ -897,3 +897,46 @@ def test_get_valuation_missing_multiples_data(monkeypatch) -> None:
assert result["ev_ebitda"]["available"] is False
assert result["ev_revenue"]["available"] is False
assert result["price_to_book"]["available"] is False
+
+
+def test_valuation_route_returns_structure(monkeypatch) -> None:
+ monkeypatch.setattr(
+ main.data_service,
+ "get_valuation",
+ lambda symbol: {
+ "symbol": "AAPL",
+ "current_price": 150.0,
+ "shares_outstanding": 15_000_000_000.0,
+ "dcf": {
+ "available": True,
+ "intrinsic_value_per_share": 182.0,
+ "enterprise_value": 2_800_000_000_000.0,
+ "equity_value": 2_750_000_000_000.0,
+ "net_debt": 50_000_000_000.0,
+ "cash_and_equivalents": 100_000_000_000.0,
+ "total_debt": 150_000_000_000.0,
+ "terminal_value_pv": 2_000_000_000_000.0,
+ "fcf_pv_sum": 800_000_000_000.0,
+ "growth_rate_used": 0.082,
+ "base_fcf": 110_000_000_000.0,
+ "wacc": 0.10,
+ "terminal_growth": 0.03,
+ "error": None,
+ },
+ "ev_ebitda": {
+ "available": True,
+ "implied_price_per_share": 178.0,
+ "implied_ev": 2_700_000_000_000.0,
+ "equity_value": 2_650_000_000_000.0,
+ "net_debt": 50_000_000_000.0,
+ "multiple_used": 20.0,
+ },
+ "ev_revenue": {"available": False},
+ "price_to_book": {"available": False},
+ },
+ )
+ result = main.ticker_valuation("AAPL")
+ assert result["symbol"] == "AAPL"
+ assert result["dcf"]["intrinsic_value_per_share"] == 182.0
+ assert result["ev_ebitda"]["multiple_used"] == 20.0
+ assert result["ev_revenue"]["available"] is False