/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
import 'mocha'
-import { cleanupTests, createMultipleServers, doubleFollow, PeerTubeServer, setAccessTokensToServers, waitJobs } from '@shared/extra-utils'
import { HttpStatusCode, UserRole } from '@shared/models'
+import {
+ cleanupTests,
+ createMultipleServers,
+ doubleFollow,
+ PeerTubeServer,
+ setAccessTokensToServers,
+ waitJobs
+} from '@shared/server-commands'
describe('Test videos files', function () {
let servers: PeerTubeServer[]
let validId1: string
let validId2: string
+ let hlsFileId: number
+ let webtorrentFileId: number
+
+ let remoteHLSFileId: number
+ let remoteWebtorrentFileId: number
+
// ---------------------------------------------------------------
before(async function () {
- this.timeout(150_000)
+ this.timeout(300_000)
servers = await createMultipleServers(2)
await setAccessTokensToServers(servers)
{
const { uuid } = await servers[1].videos.quickUpload({ name: 'remote video' })
- remoteId = uuid
+ await waitJobs(servers)
+
+ const video = await servers[1].videos.get({ id: uuid })
+ remoteId = video.uuid
+ remoteHLSFileId = video.streamingPlaylists[0].files[0].id
+ remoteWebtorrentFileId = video.files[0].id
}
{
{
const { uuid } = await servers[0].videos.quickUpload({ name: 'both 1' })
- validId1 = uuid
+ await waitJobs(servers)
+
+ const video = await servers[0].videos.get({ id: uuid })
+ validId1 = video.uuid
+ hlsFileId = video.streamingPlaylists[0].files[0].id
+ webtorrentFileId = video.files[0].id
}
{
})
it('Should not delete files of a unknown video', async function () {
- await servers[0].videos.removeHLSFiles({ videoId: 404, expectedStatus: HttpStatusCode.NOT_FOUND_404 })
- await servers[0].videos.removeWebTorrentFiles({ videoId: 404, expectedStatus: HttpStatusCode.NOT_FOUND_404 })
+ const expectedStatus = HttpStatusCode.NOT_FOUND_404
+
+ await servers[0].videos.removeHLSPlaylist({ videoId: 404, expectedStatus })
+ await servers[0].videos.removeAllWebTorrentFiles({ videoId: 404, expectedStatus })
+
+ await servers[0].videos.removeHLSFile({ videoId: 404, fileId: hlsFileId, expectedStatus })
+ await servers[0].videos.removeWebTorrentFile({ videoId: 404, fileId: webtorrentFileId, expectedStatus })
+ })
+
+ it('Should not delete unknown files', async function () {
+ const expectedStatus = HttpStatusCode.NOT_FOUND_404
+
+ await servers[0].videos.removeHLSFile({ videoId: validId1, fileId: webtorrentFileId, expectedStatus })
+ await servers[0].videos.removeWebTorrentFile({ videoId: validId1, fileId: hlsFileId, expectedStatus })
})
it('Should not delete files of a remote video', async function () {
- await servers[0].videos.removeHLSFiles({ videoId: remoteId, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
- await servers[0].videos.removeWebTorrentFiles({ videoId: remoteId, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
+ const expectedStatus = HttpStatusCode.BAD_REQUEST_400
+
+ await servers[0].videos.removeHLSPlaylist({ videoId: remoteId, expectedStatus })
+ await servers[0].videos.removeAllWebTorrentFiles({ videoId: remoteId, expectedStatus })
+
+ await servers[0].videos.removeHLSFile({ videoId: remoteId, fileId: remoteHLSFileId, expectedStatus })
+ await servers[0].videos.removeWebTorrentFile({ videoId: remoteId, fileId: remoteWebtorrentFileId, expectedStatus })
})
it('Should not delete files by a non admin user', async function () {
const expectedStatus = HttpStatusCode.FORBIDDEN_403
- await servers[0].videos.removeHLSFiles({ videoId: validId1, token: userToken, expectedStatus })
- await servers[0].videos.removeHLSFiles({ videoId: validId1, token: moderatorToken, expectedStatus })
+ await servers[0].videos.removeHLSPlaylist({ videoId: validId1, token: userToken, expectedStatus })
+ await servers[0].videos.removeHLSPlaylist({ videoId: validId1, token: moderatorToken, expectedStatus })
+
+ await servers[0].videos.removeAllWebTorrentFiles({ videoId: validId1, token: userToken, expectedStatus })
+ await servers[0].videos.removeAllWebTorrentFiles({ videoId: validId1, token: moderatorToken, expectedStatus })
- await servers[0].videos.removeWebTorrentFiles({ videoId: validId1, token: userToken, expectedStatus })
- await servers[0].videos.removeWebTorrentFiles({ videoId: validId1, token: moderatorToken, expectedStatus })
+ await servers[0].videos.removeHLSFile({ videoId: validId1, fileId: hlsFileId, token: userToken, expectedStatus })
+ await servers[0].videos.removeHLSFile({ videoId: validId1, fileId: hlsFileId, token: moderatorToken, expectedStatus })
+
+ await servers[0].videos.removeWebTorrentFile({ videoId: validId1, fileId: webtorrentFileId, token: userToken, expectedStatus })
+ await servers[0].videos.removeWebTorrentFile({ videoId: validId1, fileId: webtorrentFileId, token: moderatorToken, expectedStatus })
})
it('Should not delete files if the files are not available', async function () {
- await servers[0].videos.removeHLSFiles({ videoId: hlsId, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
- await servers[0].videos.removeWebTorrentFiles({ videoId: webtorrentId, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
- })
+ await servers[0].videos.removeHLSPlaylist({ videoId: hlsId, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
+ await servers[0].videos.removeAllWebTorrentFiles({ videoId: webtorrentId, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
- it('Should not delete files if no both versions are available', async function () {
- await servers[0].videos.removeHLSFiles({ videoId: hlsId, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
- await servers[0].videos.removeWebTorrentFiles({ videoId: webtorrentId, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
+ await servers[0].videos.removeHLSFile({ videoId: hlsId, fileId: 404, expectedStatus: HttpStatusCode.NOT_FOUND_404 })
+ await servers[0].videos.removeWebTorrentFile({ videoId: webtorrentId, fileId: 404, expectedStatus: HttpStatusCode.NOT_FOUND_404 })
})
it('Should not delete files if no both versions are available', async function () {
- await servers[0].videos.removeHLSFiles({ videoId: hlsId, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
- await servers[0].videos.removeWebTorrentFiles({ videoId: webtorrentId, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
+ await servers[0].videos.removeHLSPlaylist({ videoId: hlsId, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
+ await servers[0].videos.removeAllWebTorrentFiles({ videoId: webtorrentId, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
})
it('Should delete files if both versions are available', async function () {
- await servers[0].videos.removeHLSFiles({ videoId: validId1 })
- await servers[0].videos.removeWebTorrentFiles({ videoId: validId2 })
+ await servers[0].videos.removeHLSFile({ videoId: validId1, fileId: hlsFileId })
+ await servers[0].videos.removeWebTorrentFile({ videoId: validId1, fileId: webtorrentFileId })
+
+ await servers[0].videos.removeHLSPlaylist({ videoId: validId1 })
+ await servers[0].videos.removeAllWebTorrentFiles({ videoId: validId2 })
})
after(async function () {