feat(queue): expose stop-after marker through QueueState
The marker becomes part of the queue state snapshot the frontend already consumes via syncQueueState(). Single source of truth — no parallel event channel, no separate store on the frontend. Refs #356. cc
This commit is contained in:
2 files changed
+23
No files matched your search
@@ -858,6 +858,7 @@ impl QueueManager {
|
||||
shuffle: state.shuffle,
|
||||
repeat: state.repeat,
|
||||
total_tracks: state.tracks.len(),
|
||||
stop_after_track_id: state.stop_after_track_id,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1815,4 +1816,25 @@ mod tests {
|
||||
|
||||
assert_eq!(queue.get_stop_after(), Some(102));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_get_state_includes_stop_after() {
|
||||
let queue = QueueManager::new();
|
||||
queue.add_track(create_test_track(101));
|
||||
queue.set_stop_after(101);
|
||||
|
||||
let state = queue.get_state();
|
||||
|
||||
assert_eq!(state.stop_after_track_id, Some(101));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_get_state_returns_none_when_no_marker() {
|
||||
let queue = QueueManager::new();
|
||||
queue.add_track(create_test_track(101));
|
||||
|
||||
let state = queue.get_state();
|
||||
|
||||
assert_eq!(state.stop_after_track_id, None);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user