mirror of
https://github.com/austinried/subtracks.git
synced 2026-11-10 15:11:58 +01:00
The shuffled-removal tests mostly removed the *current* track (a path that was already correct) and asserted `state.item`, which `rebuildWindow` keeps regardless of the computed cursor, so a wrong position went unnoticed. Add: - deterministic shuffle setup (`seedShuffledQueue`, or replace + setShuffle + setCursor + connect) so shuffle tests assert exact behaviour instead of looping over random seeds; - controller tests that assert the queue position still resolves to the playing track after removing a non-current track, with and without a block, and that undo restores the shuffled order; - a repository property test removing every position with a block present, checking the play/flat bijection, the combined/contextPlay inverse, the block span and that no track repeats; - a `QueueRow.isPlaying` predicate (position AND song id) extracted and unit-tested, and QueueViewModel tests for starting a shuffled queue at the top and reconciling after a shuffled removal; - Shuffle degenerate/out-of-range/MAX_SIZE coverage.