import { ObjectStorageCommand, PeerTubeServer } from '@shared/server-commands'
import { checkLiveSegmentHash, checkResolutionsInMasterPlaylist } from './streaming-playlists'
-async function checkLiveCleanup (server: PeerTubeServer, videoUUID: string, savedResolutions: number[] = []) {
+async function checkLiveCleanup (options: {
+ server: PeerTubeServer
+ videoUUID: string
+ permanent: boolean
+ savedResolutions?: number[]
+}) {
+ const { server, videoUUID, permanent, savedResolutions = [] } = options
+
const basePath = server.servers.buildDirectory('streaming-playlists')
const hlsPath = join(basePath, 'hls', videoUUID)
+ if (permanent) {
+ if (!await pathExists(hlsPath)) return
+
+ const files = await readdir(hlsPath)
+ expect(files).to.have.lengthOf(0)
+ return
+ }
+
if (savedResolutions.length === 0) {
return checkUnsavedLiveCleanup(server, videoUUID, hlsPath)
}
})
if (objectStorage) {
- expect(hlsPlaylist.playlistUrl).to.contain(ObjectStorageCommand.getPlaylistBaseUrl())
+ expect(hlsPlaylist.playlistUrl).to.contain(ObjectStorageCommand.getMockPlaylistBaseUrl())
}
for (let i = 0; i < resolutions.length; i++) {
const segmentNum = 3
const segmentName = `${i}-00000${segmentNum}.ts`
- await originServer.live.waitUntilSegmentGeneration({ videoUUID: video.uuid, playlistNumber: i, segment: segmentNum })
+ await originServer.live.waitUntilSegmentGeneration({
+ server: originServer,
+ videoUUID: video.uuid,
+ playlistNumber: i,
+ segment: segmentNum,
+ objectStorage
+ })
const baseUrl = objectStorage
- ? ObjectStorageCommand.getPlaylistBaseUrl() + 'hls'
+ ? ObjectStorageCommand.getMockPlaylistBaseUrl() + 'hls'
: originServer.url + '/static/streaming-playlists/hls'
if (objectStorage) {
- await originServer.live.waitUntilSegmentUpload({ playlistNumber: i, segment: segmentNum })
-
- expect(hlsPlaylist.segmentsSha256Url).to.contain(ObjectStorageCommand.getPlaylistBaseUrl())
+ expect(hlsPlaylist.segmentsSha256Url).to.contain(ObjectStorageCommand.getMockPlaylistBaseUrl())
}
const subPlaylist = await originServer.streamingPlaylists.get({