fix(qconnect): align queue load payload and inbound diagnostics

cx
This commit is contained in:
vicrodh committed 2026-03-12 19:31:27 -06:00
1 parent 2d643a9bfa
commit d3c2d4c6ca
3 files changed
+91 -8

No files matched your search

+33 -3
View File
@@ -187,8 +187,7 @@ fn map_queue_command(command: &QueueCommand) -> Result<QConnectMessage, Protocol
let shuffle_mode = optional_bool(&command.payload, "shuffle_mode", false);
let context_uuid = optional_uuid_bytes(&command.payload, &["context_uuid"])?;
let autoplay_reset = optional_bool(&command.payload, "autoplay_reset", false);
let autoplay_loading =
optional_bool(&command.payload, "autoplay_loading", autoplay_reset);
let autoplay_loading = optional_bool(&command.payload, "autoplay_loading", false);
Ok(QConnectMessage {
message_type: Some(QConnectMessageType::MessageTypeCtrlSrvrQueueLoadTracks as i32),
@@ -1084,7 +1083,7 @@ mod tests {
assert_eq!(load.shuffle_seed, Some(3344));
assert_eq!(load.shuffle_pivot_index, Some(1));
assert_eq!(load.autoplay_reset, Some(true));
assert_eq!(load.autoplay_loading, Some(true));
assert_eq!(load.autoplay_loading, Some(false));
assert_eq!(
load.queue_version_ref
.as_ref()
@@ -1100,6 +1099,37 @@ mod tests {
assert_eq!(load.context_uuid.as_ref().map(|uuid| uuid.len()), Some(16));
}
#[test]
fn defaults_queue_load_tracks_autoplay_loading_to_false_when_omitted() {
let command = QueueCommand::new(
QueueCommandType::CtrlSrvrQueueLoadTracks,
"f997cd72-d2ce-4121-a89b-75bf2be251ec",
QueueVersion::new(3, 9),
json!({
"track_ids": [2001, 2002, 2003],
"queue_position": 2,
"shuffle_mode": false,
"shuffle_pivot_index": 2,
"context_uuid": "a3f7be0f-3854-44c6-9194-c93cedec322a",
"autoplay_reset": true
}),
);
let payload = encode_queue_command_batch(&command).expect("batch payload");
let decoded = QConnectMessages::decode(payload.as_slice()).expect("decode batch");
let load = decoded.messages[0]
.ctrl_srvr_queue_load_tracks
.as_ref()
.expect("queue load payload");
assert_eq!(load.queue_position, Some(2));
assert_eq!(load.shuffle_mode, Some(false));
assert_eq!(load.shuffle_pivot_index, Some(2));
assert_eq!(load.autoplay_reset, Some(true));
assert_eq!(load.autoplay_loading, Some(false));
assert_eq!(load.context_uuid.as_ref().map(|uuid| uuid.len()), Some(16));
}
#[test]
fn encodes_renderer_state_updated_report_with_queue_version() {
let report = RendererReport::new(