@@ -8,19 +8,20 @@ import com.adamratzman.spotify.models.CurrentlyPlayingType
8
8
import com.adamratzman.spotify.models.PlayableUri
9
9
import com.adamratzman.spotify.models.SpotifyContextType
10
10
import com.adamratzman.spotify.models.SpotifyTrackUri
11
+ import com.adamratzman.spotify.models.Track
11
12
import com.adamratzman.spotify.models.toAlbumUri
12
13
import com.adamratzman.spotify.models.toArtistUri
13
14
import com.adamratzman.spotify.models.toPlaylistUri
14
15
import com.adamratzman.spotify.models.toShowUri
15
16
import com.adamratzman.spotify.models.toTrackUri
16
17
import com.adamratzman.spotify.runBlockingTest
18
+ import kotlinx.coroutines.delay
17
19
import kotlin.test.Test
18
20
import kotlin.test.assertEquals
19
21
import kotlin.test.assertNotNull
20
22
import kotlin.test.assertTrue
21
23
import kotlin.time.ExperimentalTime
22
24
import kotlin.time.measureTime
23
- import kotlinx.coroutines.delay
24
25
25
26
@ExperimentalTime
26
27
class ClientPlayerApiTest {
@@ -114,15 +115,20 @@ class ClientPlayerApiTest {
114
115
runBlockingTest {
115
116
if (! testPrereq()) return @runBlockingTest else api!!
116
117
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
118
120
val trackId = " 7lPN2DXiMsVn7XUKtOW1CS"
119
121
api!! .player.addItemToEndOfQueue(trackId.toTrackUri(), device.id)
120
-
122
+ delay( 1000 )
121
123
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)
122
127
api!! .player.skipForward() // skip second
123
128
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
126
132
}
127
133
}
128
134
@@ -235,12 +241,13 @@ class ClientPlayerApiTest {
235
241
assertEquals(trackUris[offsetIndex + 1 ].id, api!! .player.getCurrentlyPlaying()?.track?.id)
236
242
237
243
// play playlist with offset track
244
+ val playlistTracks = api!! .playlists.getPlaylist(playlistUri.id)!! .tracks.map { it?.track as Track }
238
245
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)
241
248
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)
244
251
}
245
252
}
246
253
0 commit comments