""" server-26#102 — a scene is correlated on its OWN transcript, not the whole call. _scene_transcript_text slices the segments a scene owns. It must never return "" (an empty slice would let incident_correlator._build_context fall back to the call doc's whole-call transcript, re-opening the leak in exactly the case — bad indices — where it matters). """ from app.internal.intelligence import _scene_transcript_text SEGS = [ {"text": "structure fire, 12 Main"}, {"text": "engine 4 responding"}, {"text": "traffic stop, plate ABC"}, {"text": "one occupant"}, ] WHOLE = "structure fire, 12 Main engine 4 responding traffic stop, plate ABC one occupant" def test_scene_owns_a_subset_of_segments(): assert _scene_transcript_text(WHOLE, SEGS, [0, 1], None) == "structure fire, 12 Main engine 4 responding" assert _scene_transcript_text(WHOLE, SEGS, [2, 3], None) == "traffic stop, plate ABC one occupant" def test_corrected_text_wins_when_present(): assert _scene_transcript_text(WHOLE, SEGS, [0], "cleaned up text") == "cleaned up text" def test_no_segment_indices_falls_back_to_whole_call(): # single-segment calls are never numbered by _build_transcript_block → null indices assert _scene_transcript_text(WHOLE, SEGS, None, None) == WHOLE assert _scene_transcript_text(WHOLE, None, [0, 1], None) == WHOLE def test_out_of_range_or_nonint_indices_fall_back_never_empty(): assert _scene_transcript_text(WHOLE, SEGS, [9, 10], None) == WHOLE # all out of range assert _scene_transcript_text(WHOLE, SEGS, ["1", "2"], None) == WHOLE # 1-based strings, rejected assert _scene_transcript_text(WHOLE, SEGS, [-1], None) == WHOLE # negative # partial validity: keep what's in range assert _scene_transcript_text(WHOLE, SEGS, [3, 99], None) == "one occupant"