]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/tests/api/check-params/video-playlists.ts
Introduce abuse command
[github/Chocobozzz/PeerTube.git] / server / tests / api / check-params / video-playlists.ts
index 418af05d179be019ab97b32c45f557ea54f9b1c7..18253d11aef3e8deeffac14a179e7221e72a12df 100644 (file)
@@ -1,8 +1,13 @@
 /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
 
 import 'mocha'
+import { VideoPlaylistCreateResult, VideoPlaylistPrivacy, VideoPlaylistType } from '@shared/models'
+import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
 import {
   addVideoInPlaylist,
+  checkBadCountPagination,
+  checkBadSortPagination,
+  checkBadStartPagination,
   cleanupTests,
   createVideoPlaylist,
   deleteVideoPlaylist,
@@ -21,20 +26,14 @@ import {
   updateVideoPlaylistElement,
   uploadVideoAndGetId
 } from '../../../../shared/extra-utils'
-import {
-  checkBadCountPagination,
-  checkBadSortPagination,
-  checkBadStartPagination
-} from '../../../../shared/extra-utils/requests/check-api-params'
-import { VideoPlaylistPrivacy } from '../../../../shared/models/videos/playlist/video-playlist-privacy.model'
-import { VideoPlaylistType } from '../../../../shared/models/videos/playlist/video-playlist-type.model'
-import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
 
 describe('Test video playlists API validator', function () {
   let server: ServerInfo
   let userAccessToken: string
-  let playlistUUID: string
+
+  let playlist: VideoPlaylistCreateResult
   let privatePlaylistUUID: string
+
   let watchLaterPlaylistId: number
   let videoId: number
   let playlistElementId: number
@@ -67,7 +66,7 @@ describe('Test video playlists API validator', function () {
           videoChannelId: server.videoChannel.id
         }
       })
-      playlistUUID = res.body.videoPlaylist.uuid
+      playlist = res.body.videoPlaylist
     }
 
     {
@@ -150,15 +149,15 @@ describe('Test video playlists API validator', function () {
     const path = '/api/v1/video-playlists/'
 
     it('Should fail with a bad start pagination', async function () {
-      await checkBadStartPagination(server.url, path + playlistUUID + '/videos', server.accessToken)
+      await checkBadStartPagination(server.url, path + playlist.shortUUID + '/videos', server.accessToken)
     })
 
     it('Should fail with a bad count pagination', async function () {
-      await checkBadCountPagination(server.url, path + playlistUUID + '/videos', server.accessToken)
+      await checkBadCountPagination(server.url, path + playlist.shortUUID + '/videos', server.accessToken)
     })
 
     it('Should success with the correct parameters', async function () {
-      await makeGetRequest({ url: server.url, path: path + playlistUUID + '/videos', statusCodeExpected: HttpStatusCode.OK_200 })
+      await makeGetRequest({ url: server.url, path: path + playlist.shortUUID + '/videos', statusCodeExpected: HttpStatusCode.OK_200 })
     })
   })
 
@@ -177,6 +176,7 @@ describe('Test video playlists API validator', function () {
         token: server.accessToken,
         playlistAttrs: {
           displayName: 'super playlist',
+          videoChannelId: server.videoChannel.id,
           privacy: VideoPlaylistPrivacy.UNLISTED
         }
       })
@@ -187,7 +187,7 @@ describe('Test video playlists API validator', function () {
     })
 
     it('Should succeed with the correct params', async function () {
-      await getVideoPlaylist(server.url, playlistUUID, HttpStatusCode.OK_200)
+      await getVideoPlaylist(server.url, playlist.uuid, HttpStatusCode.OK_200)
     })
   })
 
@@ -213,7 +213,7 @@ describe('Test video playlists API validator', function () {
       const params = getBase({}, { token: null, expectedStatus: HttpStatusCode.UNAUTHORIZED_401 })
 
       await createVideoPlaylist(params)
-      await updateVideoPlaylist(getUpdate(params, playlistUUID))
+      await updateVideoPlaylist(getUpdate(params, playlist.shortUUID))
     })
 
     it('Should fail without displayName', async function () {
@@ -226,35 +226,42 @@ describe('Test video playlists API validator', function () {
       const params = getBase({ displayName: 's'.repeat(300) })
 
       await createVideoPlaylist(params)
-      await updateVideoPlaylist(getUpdate(params, playlistUUID))
+      await updateVideoPlaylist(getUpdate(params, playlist.shortUUID))
     })
 
     it('Should fail with an incorrect description', async function () {
       const params = getBase({ description: 't' })
 
       await createVideoPlaylist(params)
-      await updateVideoPlaylist(getUpdate(params, playlistUUID))
+      await updateVideoPlaylist(getUpdate(params, playlist.shortUUID))
     })
 
     it('Should fail with an incorrect privacy', async function () {
       const params = getBase({ privacy: 45 })
 
       await createVideoPlaylist(params)
-      await updateVideoPlaylist(getUpdate(params, playlistUUID))
+      await updateVideoPlaylist(getUpdate(params, playlist.shortUUID))
     })
 
     it('Should fail with an unknown video channel id', async function () {
       const params = getBase({ videoChannelId: 42 }, { expectedStatus: HttpStatusCode.NOT_FOUND_404 })
 
       await createVideoPlaylist(params)
-      await updateVideoPlaylist(getUpdate(params, playlistUUID))
+      await updateVideoPlaylist(getUpdate(params, playlist.shortUUID))
     })
 
     it('Should fail with an incorrect thumbnail file', async function () {
-      const params = getBase({ thumbnailfile: 'avatar.png' })
+      const params = getBase({ thumbnailfile: 'video_short.mp4' })
+
+      await createVideoPlaylist(params)
+      await updateVideoPlaylist(getUpdate(params, playlist.shortUUID))
+    })
+
+    it('Should fail with a thumbnail file too big', async function () {
+      const params = getBase({ thumbnailfile: 'preview-big.png' })
 
       await createVideoPlaylist(params)
-      await updateVideoPlaylist(getUpdate(params, playlistUUID))
+      await updateVideoPlaylist(getUpdate(params, playlist.shortUUID))
     })
 
     it('Should fail to set "public" a playlist not assigned to a channel', async function () {
@@ -265,8 +272,8 @@ describe('Test video playlists API validator', function () {
       await createVideoPlaylist(params)
       await createVideoPlaylist(params2)
       await updateVideoPlaylist(getUpdate(params, privatePlaylistUUID))
-      await updateVideoPlaylist(getUpdate(params2, playlistUUID))
-      await updateVideoPlaylist(getUpdate(params3, playlistUUID))
+      await updateVideoPlaylist(getUpdate(params2, playlist.shortUUID))
+      await updateVideoPlaylist(getUpdate(params3, playlist.shortUUID))
     })
 
     it('Should fail with an unknown playlist to update', async function () {
@@ -279,7 +286,7 @@ describe('Test video playlists API validator', function () {
     it('Should fail to update a playlist of another user', async function () {
       await updateVideoPlaylist(getUpdate(
         getBase({}, { token: userAccessToken, expectedStatus: HttpStatusCode.FORBIDDEN_403 }),
-        playlistUUID
+        playlist.shortUUID
       ))
     })
 
@@ -298,7 +305,7 @@ describe('Test video playlists API validator', function () {
 
       {
         const params = getBase({}, { expectedStatus: HttpStatusCode.NO_CONTENT_204 })
-        await updateVideoPlaylist(getUpdate(params, playlistUUID))
+        await updateVideoPlaylist(getUpdate(params, playlist.shortUUID))
       }
     })
   })
@@ -309,7 +316,7 @@ describe('Test video playlists API validator', function () {
         expectedStatus: HttpStatusCode.BAD_REQUEST_400,
         url: server.url,
         token: server.accessToken,
-        playlistId: playlistUUID,
+        playlistId: playlist.id,
         elementAttrs: Object.assign({
           videoId,
           startTimestamp: 2,
@@ -374,7 +381,7 @@ describe('Test video playlists API validator', function () {
           stopTimestamp: 2
         }, elementAttrs),
         playlistElementId,
-        playlistId: playlistUUID,
+        playlistId: playlist.id,
         expectedStatus: HttpStatusCode.BAD_REQUEST_400
       }, wrapper)
     }
@@ -444,7 +451,7 @@ describe('Test video playlists API validator', function () {
       return Object.assign({
         url: server.url,
         token: server.accessToken,
-        playlistId: playlistUUID,
+        playlistId: playlist.shortUUID,
         elementAttrs: Object.assign({
           startPosition: 1,
           insertAfterPosition: 2,
@@ -462,7 +469,7 @@ describe('Test video playlists API validator', function () {
         await addVideoInPlaylist({
           url: server.url,
           token: server.accessToken,
-          playlistId: playlistUUID,
+          playlistId: playlist.shortUUID,
           elementAttrs: { videoId: id }
         })
       }
@@ -599,7 +606,7 @@ describe('Test video playlists API validator', function () {
         url: server.url,
         token: server.accessToken,
         playlistElementId,
-        playlistId: playlistUUID,
+        playlistId: playlist.uuid,
         expectedStatus: HttpStatusCode.BAD_REQUEST_400
       }, wrapper)
     }
@@ -655,7 +662,7 @@ describe('Test video playlists API validator', function () {
     })
 
     it('Should fail with a playlist of another user', async function () {
-      await deleteVideoPlaylist(server.url, userAccessToken, playlistUUID, HttpStatusCode.FORBIDDEN_403)
+      await deleteVideoPlaylist(server.url, userAccessToken, playlist.uuid, HttpStatusCode.FORBIDDEN_403)
     })
 
     it('Should fail with the watch later playlist', async function () {
@@ -663,7 +670,7 @@ describe('Test video playlists API validator', function () {
     })
 
     it('Should succeed with the correct params', async function () {
-      await deleteVideoPlaylist(server.url, server.accessToken, playlistUUID)
+      await deleteVideoPlaylist(server.url, server.accessToken, playlist.uuid)
     })
   })