@@ -8,19 +8,20 @@ import com.adamratzman.spotify.models.CurrentlyPlayingType
88import com.adamratzman.spotify.models.PlayableUri
99import com.adamratzman.spotify.models.SpotifyContextType
1010import com.adamratzman.spotify.models.SpotifyTrackUri
11+ import com.adamratzman.spotify.models.Track
1112import com.adamratzman.spotify.models.toAlbumUri
1213import com.adamratzman.spotify.models.toArtistUri
1314import com.adamratzman.spotify.models.toPlaylistUri
1415import com.adamratzman.spotify.models.toShowUri
1516import com.adamratzman.spotify.models.toTrackUri
1617import com.adamratzman.spotify.runBlockingTest
18+ import kotlinx.coroutines.delay
1719import kotlin.test.Test
1820import kotlin.test.assertEquals
1921import kotlin.test.assertNotNull
2022import kotlin.test.assertTrue
2123import kotlin.time.ExperimentalTime
2224import kotlin.time.measureTime
23- import kotlinx.coroutines.delay
2425
2526@ExperimentalTime
2627class ClientPlayerApiTest {
@@ -114,15 +115,20 @@ class ClientPlayerApiTest {
114115 runBlockingTest {
115116 if (! testPrereq()) return @runBlockingTest else api!!
116117 val device = api!! .player.getDevices().first()
117- api!! .player.startPlayback(playlistId = " 098OivbzwUNzzDShgF6U4A" ) // two tracks
118+ val playlist = api!! .playlists.getPlaylist(" 098OivbzwUNzzDShgF6U4A" )!!
119+ api!! .player.startPlayback(playlistId = playlist.id) // two tracks
118120 val trackId = " 7lPN2DXiMsVn7XUKtOW1CS"
119121 api!! .player.addItemToEndOfQueue(trackId.toTrackUri(), device.id)
120-
122+ delay( 1000 )
121123 api!! .player.skipForward() // skip first
124+ delay(2000 )
125+ // we have nothing in the queue so the next in queue gets played before resuming playlist
126+ assertEquals(trackId, api!! .player.getCurrentlyPlaying()?.track?.uri?.id)
122127 api!! .player.skipForward() // skip second
123128 delay(2000 )
124- // we should now be at track
125- assertEquals(trackId, api!! .player.getCurrentlyPlaying()?.context?.uri?.id)
129+ // now we're back in the playlist
130+ assertEquals(playlist.tracks[1 ].track!! .asTrack!! .id, api!! .player.getCurrentlyPlaying()?.track?.uri?.id)
131+ api!! .player.skipForward() // skip second
126132 }
127133 }
128134
@@ -235,12 +241,13 @@ class ClientPlayerApiTest {
235241 assertEquals(trackUris[offsetIndex + 1 ].id, api!! .player.getCurrentlyPlaying()?.track?.id)
236242
237243 // play playlist with offset track
244+ val playlistTracks = api!! .playlists.getPlaylist(playlistUri.id)!! .tracks.map { it?.track as Track }
238245 api!! .player.startPlayback(contextUri = playlistUri, offsetIndex = offsetIndex)
239- delay(1000 )
240- assertEquals(trackUris [offsetIndex].id, api!! .player.getCurrentlyPlaying()?.track?.id)
246+ delay(2500 )
247+ assertEquals(playlistTracks [offsetIndex].id, api!! .player.getCurrentlyPlaying()?.track?.id)
241248 api!! .player.skipForward()
242- delay(1000 )
243- assertEquals(trackUris [offsetIndex + 1 ].id, api!! .player.getCurrentlyPlaying()?.track?.id)
249+ delay(2000 )
250+ assertEquals(playlistTracks [offsetIndex + 1 ].id, api!! .player.getCurrentlyPlaying()?.track?.id)
244251 }
245252 }
246253
0 commit comments