from app.infrastructure.soniox import group_by_speaker def test_group_by_speaker_flushes_on_sentence_and_speaker_change(): segments = group_by_speaker( [ {"speaker": "Bride", "text": "Create ", "start_ms": 0, "end_ms": 100}, {"speaker": "Bride", "text": "a task.", "start_ms": 100, "end_ms": 500}, {"speaker": "Planner", "text": "Add ", "start_ms": 600, "end_ms": 700}, {"speaker": "Planner", "text": "a note.", "start_ms": 700, "end_ms": 1000}, ] ) assert len(segments) == 2 assert segments[0].speaker == "Bride" assert segments[0].edited_text == "Create a task." assert segments[1].speaker == "Planner"