]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/tests/api/check-params/services.ts
replace numbers with typed http status codes (#3409)
[github/Chocobozzz/PeerTube.git] / server / tests / api / check-params / services.ts
index 457adfaabf0033f2ce43e5ac01dd0d806b1331c0..514e3da702381c890e183432dec8b6b2153ffdcd 100644 (file)
@@ -8,11 +8,16 @@ import {
   makeGetRequest,
   ServerInfo,
   setAccessTokensToServers,
-  uploadVideo
+  uploadVideo,
+  createVideoPlaylist,
+  setDefaultVideoChannel
 } from '../../../../shared/extra-utils'
+import { VideoPlaylistPrivacy } from '@shared/models'
+import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
 
 describe('Test services API validators', function () {
   let server: ServerInfo
+  let playlistUUID: string
 
   // ---------------------------------------------------------------
 
@@ -21,9 +26,26 @@ describe('Test services API validators', function () {
 
     server = await flushAndRunServer(1)
     await setAccessTokensToServers([ server ])
-
-    const res = await uploadVideo(server.url, server.accessToken, { name: 'my super name' })
-    server.video = res.body.video
+    await setDefaultVideoChannel([ server ])
+
+    {
+      const res = await uploadVideo(server.url, server.accessToken, { name: 'my super name' })
+      server.video = res.body.video
+    }
+
+    {
+      const res = await createVideoPlaylist({
+        url: server.url,
+        token: server.accessToken,
+        playlistAttrs: {
+          displayName: 'super playlist',
+          privacy: VideoPlaylistPrivacy.PUBLIC,
+          videoChannelId: server.videoChannel.id
+        }
+      })
+
+      playlistUUID = res.body.videoPlaylist.uuid
+    }
   })
 
   describe('Test oEmbed API validators', function () {
@@ -38,14 +60,14 @@ describe('Test services API validators', function () {
       await checkParamEmbed(server, embedUrl)
     })
 
-    it('Should fail with an invalid video id', async function () {
+    it('Should fail with an invalid element id', async function () {
       const embedUrl = `http://localhost:${server.port}/videos/watch/blabla`
       await checkParamEmbed(server, embedUrl)
     })
 
-    it('Should fail with an unknown video', async function () {
+    it('Should fail with an unknown element', async function () {
       const embedUrl = `http://localhost:${server.port}/videos/watch/88fc0165-d1f0-4a35-a51a-3b47f668689c`
-      await checkParamEmbed(server, embedUrl, 404)
+      await checkParamEmbed(server, embedUrl, HttpStatusCode.NOT_FOUND_404)
     })
 
     it('Should fail with an invalid path', async function () {
@@ -57,28 +79,28 @@ describe('Test services API validators', function () {
     it('Should fail with an invalid max height', async function () {
       const embedUrl = `http://localhost:${server.port}/videos/watch/${server.video.uuid}`
 
-      await checkParamEmbed(server, embedUrl, 400, { maxheight: 'hello' })
+      await checkParamEmbed(server, embedUrl, HttpStatusCode.BAD_REQUEST_400, { maxheight: 'hello' })
     })
 
     it('Should fail with an invalid max width', async function () {
       const embedUrl = `http://localhost:${server.port}/videos/watch/${server.video.uuid}`
 
-      await checkParamEmbed(server, embedUrl, 400, { maxwidth: 'hello' })
+      await checkParamEmbed(server, embedUrl, HttpStatusCode.BAD_REQUEST_400, { maxwidth: 'hello' })
     })
 
     it('Should fail with an invalid format', async function () {
       const embedUrl = `http://localhost:${server.port}/videos/watch/${server.video.uuid}`
 
-      await checkParamEmbed(server, embedUrl, 400, { format: 'blabla' })
+      await checkParamEmbed(server, embedUrl, HttpStatusCode.BAD_REQUEST_400, { format: 'blabla' })
     })
 
     it('Should fail with a non supported format', async function () {
       const embedUrl = `http://localhost:${server.port}/videos/watch/${server.video.uuid}`
 
-      await checkParamEmbed(server, embedUrl, 501, { format: 'xml' })
+      await checkParamEmbed(server, embedUrl, HttpStatusCode.NOT_IMPLEMENTED_501, { format: 'xml' })
     })
 
-    it('Should succeed with the correct params', async function () {
+    it('Should succeed with the correct params with a video', async function () {
       const embedUrl = `http://localhost:${server.port}/videos/watch/${server.video.uuid}`
       const query = {
         format: 'json',
@@ -86,7 +108,18 @@ describe('Test services API validators', function () {
         maxwidth: 400
       }
 
-      await checkParamEmbed(server, embedUrl, 200, query)
+      await checkParamEmbed(server, embedUrl, HttpStatusCode.OK_200, query)
+    })
+
+    it('Should succeed with the correct params with a playlist', async function () {
+      const embedUrl = `http://localhost:${server.port}/videos/watch/playlist/${playlistUUID}`
+      const query = {
+        format: 'json',
+        maxheight: 400,
+        maxwidth: 400
+      }
+
+      await checkParamEmbed(server, embedUrl, HttpStatusCode.OK_200, query)
     })
   })
 
@@ -95,7 +128,7 @@ describe('Test services API validators', function () {
   })
 })
 
-function checkParamEmbed (server: ServerInfo, embedUrl: string, statusCodeExpected = 400, query = {}) {
+function checkParamEmbed (server: ServerInfo, embedUrl: string, statusCodeExpected = HttpStatusCode.BAD_REQUEST_400, query = {}) {
   const path = '/services/oembed'
 
   return makeGetRequest({