]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/tests/api/check-params/video-files.ts
Reimplement a typed omit function
[github/Chocobozzz/PeerTube.git] / server / tests / api / check-params / video-files.ts
index 61936d5625a616278494c07c2574f06903e87c1f..c698bea823067b2b4c37bfbafc1572c2a26aaf21 100644 (file)
@@ -1,8 +1,15 @@
 /* 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[]
@@ -17,10 +24,16 @@ describe('Test videos files', function () {
   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)
@@ -32,7 +45,12 @@ describe('Test videos files', function () {
 
     {
       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
     }
 
     {
@@ -40,7 +58,12 @@ describe('Test videos files', function () {
 
       {
         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
       }
 
       {
@@ -69,43 +92,67 @@ describe('Test videos files', function () {
   })
 
   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 () {