This commit is contained in:
Tobias Gesellchen
2026-06-06 19:11:24 +02:00
parent a974862b07
commit e7f1e6bfbd
+49 -49
View File
@@ -23,55 +23,55 @@ Legend: ✅ covered · ⬜ gap · 〰️ partial (some status/variant uncovered)
## Frozen speaker routes
| Method | Route | Status(es) observed | Covered by | State |
|--------|-------|--------------------|------------|-------|
| GET | `/streaming/account/{a}/full` | 200, 304 | `get_full_account.http`, `get_full_account_conditional.http` | ✅ |
| GET | `/streaming/account/{a}/devices` | 200 | `get_account_devices.http` | ✅ |
| GET | `/streaming/account/{a}/sources` | 200 | `get_account_sources.http` | ✅ |
| GET | `/streaming/account/{a}/presets/all` | 200 | `get_account_presets.http` | ✅ |
| GET | `/streaming/account/{a}/provider_settings` | 200 | `get_provider_settings.http` | ✅ |
| POST | `/streaming/account` (+ `/login`) | 201/200 | `create_account.http` | ✅ |
| POST | `/streaming/account/{a}/device/` | 201 | `register_device.http` | ✅ |
| PUT | `/streaming/account/{a}/device/{d}` | 200, 401 | `rename_device.http` | 〰️ (401 gap) |
| DELETE | `/streaming/account/{a}/device/{d}` | 200 | `unregister_device.http` | ✅ |
| GET | `/streaming/account/{a}/device/{d}/group/` | 200 | `get_group.http` | ✅ |
| GET | `/streaming/account/{a}/device/{d}/presets` | 200, 304 | `get_presets.http`, `get_presets_conditional.http` | ✅ |
| PUT | `/streaming/account/{a}/device/{d}/preset/{n}` | 200 | `set_preset_5/6.http` | ✅ |
| DELETE | `/streaming/account/{a}/device/{d}/preset/{n}` | 200 | `delete_preset_6.http` | ✅ |
| POST | `/streaming/account/{a}/device/{d}/recent` | 201 | `post_recent.http` | ✅ |
| GET | `/streaming/account/{a}/device/{d}/recents` | 200 | `get_recents.http` | ✅ |
| POST | `/streaming/account/{a}/source` | 200 | `set_preset_5.http` | ✅ |
| POST | `/streaming/account/{a}/group/` | 201 | `create_group.http` | ✅ |
| DELETE | `/streaming/account/{a}/group/` | 200 | `delete_group.http` | ✅ (account-level teardown) |
| DELETE | `/streaming/account/{a}/group/{id}` | 200 | `delete_group.http` | ✅ |
| GET | `/streaming/device/{d}/streaming_token` | 200 | `get_streaming_token.http` | ✅ |
| GET | `/streaming/software/update/account/{a}` | 200 | `get_software_update.http` | ✅ |
| GET | `/streaming/sourceproviders` | 200 | `get_sourceproviders.http` | ✅ |
| GET | `/streaming/resources/api_versions.xml` | 200 | `get_api_versions.http` | ✅ |
| POST | `/streaming/support/power_on` | 200 | `power_on.http` | ✅ |
| POST | `/streaming/support/customersupport` | 200 | `customer_support.http` | ✅ |
| POST | `/streaming/music/musicprovider/{id}/is_eligible` | 200 | `post_musicprovider_is_eligible.http` | ✅ |
| POST | `/accounts/{a}/devices` | 201 | `register_device.http` | ✅ |
| DELETE | `/accounts/{a}/devices/{d}` | 200 | `unregister_device.http` | ✅ |
| GET | `/updates/soundtouch` | 200 | `get_soundtouch_updates.http` | ✅ |
| GET | `/v1/auth` | 200, 403, 404 | — | ⬜ (Go unit: `auth_probe_test.go`) |
| POST | `/v1/scmudc/{d}` | 200 | — | ⬜ |
| GET | `/v1/blacklist/{d}` | 405 | — | ⬜ (edge) |
| POST | `/alexa/certificate` | 501 (rare 200) | — | ⬜ (edge) |
| GET | `/bmx/registry/v1/services` | 200 | `get_bmx_services.http` | ✅ |
| POST | `/bmx/tunein/v1/token` | 200 | `tunein_playback_station.http` | ✅ |
| GET | `/bmx/tunein/v1/playback/station/{stationID}` | 200, 401 | `tunein_playback_station.http` | ✅ (offline via mock-tunein) |
| GET | `/bmx/tunein/v1/playback/episode(s)/{episodeID}` | 200 | — | ⬜ (needs mock fixture, see TUNEIN-MOCK-MISSING.md) |
| POST | `/bmx/tunein/v1/report` | 200 | `post_tunein_report.http` | ✅ |
| POST/DELETE | `/bmx/tunein/v1/favorite/{stationID}` | 202 | `tunein_favorite.http` | ✅ (local-only) |
| GET | `/core02/svc-bmx-adapter-orion/prod/orion/station` | 200 | — | ⬜ |
| GET | `/custom/v1/playback/{encodedURL}` | 200 | — | ⬜ |
| GET | `/media/aftertouch-ding.wav` | 200 (binary) | — | ⬜ |
| GET | `/media/bmx-icons/{provider}/{file}` | 200 (binary) | — | ⬜ |
| GET | `/media/tts/{hash}.mp3` | 200, 404 (binary) | — | ⬜ (depends on prior TTS) |
| GET | `/ced/utilities/audio/take5.mp3` | 404 | — | ⬜ (edge: CED static miss) |
| POST | `/oauth/device/{d}/.../15/token/cs3` | 200 | `post_oauth_token.http` | ✅ |
| POST | `/oauth/device/{d}/.../20/token/cs1` | 200 | `post_oauth_token_amazon.http` | ✅ |
| Method | Route | Status(es) observed | Covered by | State |
|-------------|----------------------------------------------------|---------------------|--------------------------------------------------------------|----------------------------------------------------|
| GET | `/streaming/account/{a}/full` | 200, 304 | `get_full_account.http`, `get_full_account_conditional.http` | ✅ |
| GET | `/streaming/account/{a}/devices` | 200 | `get_account_devices.http` | ✅ |
| GET | `/streaming/account/{a}/sources` | 200 | `get_account_sources.http` | ✅ |
| GET | `/streaming/account/{a}/presets/all` | 200 | `get_account_presets.http` | ✅ |
| GET | `/streaming/account/{a}/provider_settings` | 200 | `get_provider_settings.http` | ✅ |
| POST | `/streaming/account` (+ `/login`) | 201/200 | `create_account.http` | ✅ |
| POST | `/streaming/account/{a}/device/` | 201 | `register_device.http` | ✅ |
| PUT | `/streaming/account/{a}/device/{d}` | 200, 401 | `rename_device.http` | 〰️ (401 gap) |
| DELETE | `/streaming/account/{a}/device/{d}` | 200 | `unregister_device.http` | ✅ |
| GET | `/streaming/account/{a}/device/{d}/group/` | 200 | `get_group.http` | ✅ |
| GET | `/streaming/account/{a}/device/{d}/presets` | 200, 304 | `get_presets.http`, `get_presets_conditional.http` | ✅ |
| PUT | `/streaming/account/{a}/device/{d}/preset/{n}` | 200 | `set_preset_5/6.http` | ✅ |
| DELETE | `/streaming/account/{a}/device/{d}/preset/{n}` | 200 | `delete_preset_6.http` | ✅ |
| POST | `/streaming/account/{a}/device/{d}/recent` | 201 | `post_recent.http` | ✅ |
| GET | `/streaming/account/{a}/device/{d}/recents` | 200 | `get_recents.http` | ✅ |
| POST | `/streaming/account/{a}/source` | 200 | `set_preset_5.http` | ✅ |
| POST | `/streaming/account/{a}/group/` | 201 | `create_group.http` | ✅ |
| DELETE | `/streaming/account/{a}/group/` | 200 | `delete_group.http` | ✅ (account-level teardown) |
| DELETE | `/streaming/account/{a}/group/{id}` | 200 | `delete_group.http` | ✅ |
| GET | `/streaming/device/{d}/streaming_token` | 200 | `get_streaming_token.http` | ✅ |
| GET | `/streaming/software/update/account/{a}` | 200 | `get_software_update.http` | ✅ |
| GET | `/streaming/sourceproviders` | 200 | `get_sourceproviders.http` | ✅ |
| GET | `/streaming/resources/api_versions.xml` | 200 | `get_api_versions.http` | ✅ |
| POST | `/streaming/support/power_on` | 200 | `power_on.http` | ✅ |
| POST | `/streaming/support/customersupport` | 200 | `customer_support.http` | ✅ |
| POST | `/streaming/music/musicprovider/{id}/is_eligible` | 200 | `post_musicprovider_is_eligible.http` | ✅ |
| POST | `/accounts/{a}/devices` | 201 | `register_device.http` | ✅ |
| DELETE | `/accounts/{a}/devices/{d}` | 200 | `unregister_device.http` | ✅ |
| GET | `/updates/soundtouch` | 200 | `get_soundtouch_updates.http` | ✅ |
| GET | `/v1/auth` | 200, 403, 404 | — | ⬜ (Go unit: `auth_probe_test.go`) |
| POST | `/v1/scmudc/{d}` | 200 | — | ⬜ |
| GET | `/v1/blacklist/{d}` | 405 | — | ⬜ (edge) |
| POST | `/alexa/certificate` | 501 (rare 200) | — | ⬜ (edge) |
| GET | `/bmx/registry/v1/services` | 200 | `get_bmx_services.http` | ✅ |
| POST | `/bmx/tunein/v1/token` | 200 | `tunein_playback_station.http` | ✅ |
| GET | `/bmx/tunein/v1/playback/station/{stationID}` | 200, 401 | `tunein_playback_station.http` | ✅ (offline via mock-tunein) |
| GET | `/bmx/tunein/v1/playback/episode(s)/{episodeID}` | 200 | — | ⬜ (needs mock fixture, see TUNEIN-MOCK-MISSING.md) |
| POST | `/bmx/tunein/v1/report` | 200 | `post_tunein_report.http` | ✅ |
| POST/DELETE | `/bmx/tunein/v1/favorite/{stationID}` | 202 | `tunein_favorite.http` | ✅ (local-only) |
| GET | `/core02/svc-bmx-adapter-orion/prod/orion/station` | 200 | — | ⬜ |
| GET | `/custom/v1/playback/{encodedURL}` | 200 | — | ⬜ |
| GET | `/media/aftertouch-ding.wav` | 200 (binary) | — | ⬜ |
| GET | `/media/bmx-icons/{provider}/{file}` | 200 (binary) | — | ⬜ |
| GET | `/media/tts/{hash}.mp3` | 200, 404 (binary) | — | ⬜ (depends on prior TTS) |
| GET | `/ced/utilities/audio/take5.mp3` | 404 | — | ⬜ (edge: CED static miss) |
| POST | `/oauth/device/{d}/.../15/token/cs3` | 200 | `post_oauth_token.http` | ✅ |
| POST | `/oauth/device/{d}/.../20/token/cs1` | 200 | `post_oauth_token_amazon.http` | ✅ |
## Not observed from the speaker (lower priority / different audience)