@@ -52,6 +52,16 @@ def test_soxl_without_reference_preserves_legacy_inputs():
5252 ) == {}
5353
5454
55+ def test_nasdaq_without_reference_preserves_legacy_inputs ():
56+ settings = SimpleNamespace (market_signal_required = False )
57+
58+ assert market_signal_runtime .resolve_external_market_signal_inputs (
59+ strategy_profile = "nasdaq_sp500_smart_dca" ,
60+ available_inputs = {"derived_indicators" },
61+ runtime_settings = settings ,
62+ ) == {}
63+
64+
5565def test_soxl_required_reference_missing_raises ():
5666 settings = SimpleNamespace (market_signal_required = True )
5767
@@ -129,6 +139,74 @@ def fake_extract(
129139 )
130140
131141
142+ def test_nasdaq_handoff_index_reference_is_extracted (monkeypatch , tmp_path ):
143+ calls : dict [str , object ] = {}
144+
145+ def fake_extract (
146+ reference ,
147+ * ,
148+ reference_type ,
149+ consumer ,
150+ cache_dir ,
151+ as_of ,
152+ client_factory = None ,
153+ fallback_mode = None ,
154+ fallback_max_stale_days = None ,
155+ ):
156+ calls ["extract" ] = (
157+ reference ,
158+ reference_type ,
159+ consumer ,
160+ cache_dir ,
161+ as_of ,
162+ client_factory ,
163+ fallback_mode ,
164+ fallback_max_stale_days ,
165+ )
166+ return {
167+ "derived_indicators" : {
168+ "QQQ" : {"close" : 450.0 , "sma200_gap" : 0.08 },
169+ "SPY" : {"close" : 520.0 , "sma200_gap" : 0.05 },
170+ }
171+ }, {
172+ "reference_type" : reference_type ,
173+ "source_uri" : reference ,
174+ "materialized_count" : 2 ,
175+ }
176+
177+ monkeypatch .setattr (
178+ market_signal_runtime ,
179+ "extract_consumer_market_signal_inputs_from_reference" ,
180+ fake_extract ,
181+ )
182+ settings = SimpleNamespace (
183+ market_signal_handoff_index_uri = "gs://signals/platform_handoffs/index.json" ,
184+ market_signal_cache_dir = str (tmp_path ),
185+ market_signal_required = True ,
186+ market_signal_fallback_mode = "last_valid" ,
187+ market_signal_max_stale_days = 4 ,
188+ )
189+
190+ assert market_signal_runtime .resolve_external_market_signal_inputs (
191+ strategy_profile = "nasdaq_sp500_smart_dca" ,
192+ available_inputs = {"derived_indicators" },
193+ runtime_settings = settings ,
194+ as_of = datetime (2026 , 6 , 19 , tzinfo = timezone .utc ),
195+ logger = lambda _message : None ,
196+ client_factory = object ,
197+ )["derived_indicators" ]["QQQ" ]["close" ] == 450.0
198+ assert calls ["extract" ] == (
199+ "gs://signals/platform_handoffs/index.json" ,
200+ "platform_handoff_index" ,
201+ "us_equity:nasdaq_sp500_smart_dca" ,
202+ tmp_path ,
203+ "2026-06-19" ,
204+ object ,
205+ "last_valid" ,
206+ 4 ,
207+ )
208+
209+
132210def test_soxl_handoff_index_reference_is_extracted (monkeypatch , tmp_path ):
133211 calls : dict [str , object ] = {}
134212
0 commit comments