"""Confirm that list_versions returns waveform_peaks inline (no extra request needed).""" import uuid from datetime import datetime, timezone from unittest.mock import MagicMock from rehearsalhub.db.models import AudioVersion from rehearsalhub.schemas.audio_version import AudioVersionRead def test_audio_version_read_includes_peaks_in_list_serialization(): """AudioVersionRead (used by list_versions) serializes waveform_peaks inline.""" peaks = [0.1, 0.5, 0.9] mini = [0.3, 0.7] v = MagicMock(spec=AudioVersion) v.id = uuid.uuid4() v.song_id = uuid.uuid4() v.version_number = 1 v.label = None v.nc_file_path = "/test/v1.wav" v.nc_file_etag = "etag" v.cdn_hls_base = None v.waveform_url = None v.waveform_peaks = peaks v.waveform_peaks_mini = mini v.duration_ms = 3000 v.format = "wav" v.file_size_bytes = 512 v.analysis_status = "done" v.uploaded_by = None v.uploaded_at = datetime.now(timezone.utc) schema = AudioVersionRead.model_validate(v) serialized = schema.model_dump() assert serialized["waveform_peaks"] == peaks assert serialized["waveform_peaks_mini"] == mini