fix: advance playback after track completion
Backend / Lint i formatowanie (pull_request) Successful in 4s
Backend / Testy i kontrakt API (pull_request) Successful in 10s
Panel / Lint, typy i build (pull_request) Successful in 19s
Backend / Testowy build obrazu (pull_request) Successful in 9s

This commit is contained in:
mmacierzanka committed 2026-08-21 18:39:57 +02:00
1 parent 322087c50e
commit ed13d4af06
4 files changed
+83 -11

No files matched your search

+24 -1
View File
@@ -93,6 +93,16 @@ class MusicPlayerQueueTest(unittest.IsolatedAsyncioTestCase):
self.assertEqual(state.index, 1)
self.assertEqual(state.current.id, "b")
async def test_initial_playback_callback_advances_from_zero_token(self):
_, voice_client, state = await self._queue_abc()
voice_client.after(None)
await asyncio.sleep(0.01)
self.assertEqual(state.index, 1)
self.assertEqual(state.current.id, "b")
self.assertEqual(state.queue[0].plays_left, 4)
async def test_loop_track_replays_same_index(self):
player, _, state = await self._queue_abc()
await player.play_next(GUILD, advance=True)
@@ -118,11 +128,24 @@ class MusicPlayerQueueTest(unittest.IsolatedAsyncioTestCase):
self.assertIsNone(state.current)
self.assertEqual(state.index, 3)
async def test_queue_end_is_not_active_even_if_voice_client_lags(self):
player, voice_client, state = await self._queue_abc()
state.index = 2
await player.play_next(GUILD, advance=True)
self.assertIsNone(state.current)
self.assertFalse(voice_client.is_playing())
self.assertFalse(player.is_active(GUILD))
await player.enqueue(GUILD, FakeTrack("new"))
self.assertEqual(state.current.id, "new")
async def test_jump_after_queue_end_plays_selected_track(self):
player, voice_client, state = await self._queue_abc()
state.index = 2
await player.play_next(GUILD, advance=True)
voice_client.playing = None
voice_client.playing = state.queue[2]
await player.jump(GUILD, 0)