]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/tests/api/check-params/services.ts
Move fixtures in tests/
[github/Chocobozzz/PeerTube.git] / server / tests / api / check-params / services.ts
index f82520574e588f9448c16ded2887cdf32712dcb1..fcde7e17965563514a47e2b77eba27fdf8328bb7 100644 (file)
@@ -1,18 +1,11 @@
 /* tslint:disable:no-unused-expression */
 
-import * as request from 'supertest'
 import 'mocha'
 
-import {
-  flushTests,
-  runServer,
-  setAccessTokensToServers,
-  killallServers
-} from '../../utils'
-import { getVideosList, uploadVideo } from '../../utils/videos/videos'
+import { flushTests, killallServers, makeGetRequest, runServer, ServerInfo, setAccessTokensToServers, uploadVideo } from '../../utils'
 
 describe('Test services API validators', function () {
-  let server
+  let server: ServerInfo
 
   // ---------------------------------------------------------------
 
@@ -24,127 +17,71 @@ describe('Test services API validators', function () {
     server = await runServer(1)
     await setAccessTokensToServers([ server ])
 
-    const videoAttributes = {
-      name: 'my super name'
-    }
-    await uploadVideo(server.url, server.accessToken, videoAttributes)
-
-    const res = await getVideosList(server.url)
-    server.video = res.body.data[0]
+    const res = await uploadVideo(server.url, server.accessToken, { name: 'my super name' })
+    server.video = res.body.video
   })
 
   describe('Test oEmbed API validators', function () {
-    const path = '/services/oembed'
 
     it('Should fail with an invalid url', async function () {
       const embedUrl = 'hello.com'
-
-      await request(server.url)
-        .get(path)
-        .query({ url: embedUrl })
-        .set('Accept', 'application/json')
-        .set('Authorization', 'Bearer ' + server.accessToken)
-        .expect(400)
+      await checkParamEmbed(server, embedUrl)
     })
 
     it('Should fail with an invalid host', async function () {
       const embedUrl = 'http://hello.com/videos/watch/' + server.video.uuid
-
-      await request(server.url)
-        .get(path)
-        .query({ url: embedUrl })
-        .set('Accept', 'application/json')
-        .set('Authorization', 'Bearer ' + server.accessToken)
-        .expect(400)
+      await checkParamEmbed(server, embedUrl)
     })
 
     it('Should fail with an invalid video id', async function () {
       const embedUrl = 'http://localhost:9001/videos/watch/blabla'
-
-      await request(server.url)
-        .get(path)
-        .query({ url: embedUrl })
-        .set('Accept', 'application/json')
-        .set('Authorization', 'Bearer ' + server.accessToken)
-        .expect(400)
+      await checkParamEmbed(server, embedUrl)
     })
 
     it('Should fail with an unknown video', async function () {
       const embedUrl = 'http://localhost:9001/videos/watch/88fc0165-d1f0-4a35-a51a-3b47f668689c'
-
-      await request(server.url)
-        .get(path)
-        .query({ url: embedUrl })
-        .set('Accept', 'application/json')
-        .set('Authorization', 'Bearer ' + server.accessToken)
-        .expect(404)
+      await checkParamEmbed(server, embedUrl, 404)
     })
 
     it('Should fail with an invalid path', async function () {
       const embedUrl = 'http://localhost:9001/videos/watchs/' + server.video.uuid
 
-      await request(server.url)
-        .get(path)
-        .query({ url: embedUrl })
-        .set('Accept', 'application/json')
-        .set('Authorization', 'Bearer ' + server.accessToken)
-        .expect(400)
+      await checkParamEmbed(server, embedUrl)
     })
 
     it('Should fail with an invalid max height', async function () {
       const embedUrl = 'http://localhost:9001/videos/watch/' + server.video.uuid
 
-      await request(server.url)
-        .get(path)
-        .query({
-          url: embedUrl,
-          maxheight: 'hello'
-        })
-        .set('Accept', 'application/json')
-        .set('Authorization', 'Bearer ' + server.accessToken)
-        .expect(400)
+      await checkParamEmbed(server, embedUrl, 400, { maxheight: 'hello' })
     })
 
     it('Should fail with an invalid max width', async function () {
       const embedUrl = 'http://localhost:9001/videos/watch/' + server.video.uuid
 
-      await request(server.url)
-        .get(path)
-        .query({
-          url: embedUrl,
-          maxwidth: 'hello'
-        })
-        .set('Accept', 'application/json')
-        .set('Authorization', 'Bearer ' + server.accessToken)
-        .expect(400)
+      await checkParamEmbed(server, embedUrl, 400, { maxwidth: 'hello' })
     })
 
     it('Should fail with an invalid format', async function () {
       const embedUrl = 'http://localhost:9001/videos/watch/' + server.video.uuid
 
-      await request(server.url)
-        .get(path)
-        .query({
-          url: embedUrl,
-          format: 'blabla'
-        })
-        .set('Accept', 'application/json')
-        .set('Authorization', 'Bearer ' + server.accessToken)
-        .expect(400)
+      await checkParamEmbed(server, embedUrl, 400, { format: 'blabla' })
     })
 
     it('Should fail with a non supported format', async function () {
       const embedUrl = 'http://localhost:9001/videos/watch/' + server.video.uuid
 
-      await request(server.url)
-        .get(path)
-        .query({
-          url: embedUrl,
-          format: 'xml'
-        })
-        .set('Accept', 'application/json')
-        .set('Authorization', 'Bearer ' + server.accessToken)
-        .expect(501)
+      await checkParamEmbed(server, embedUrl, 501, { format: 'xml' })
+    })
+
+    it('Should succeed with the correct params', async function () {
+      const embedUrl = 'http://localhost:9001/videos/watch/' + server.video.uuid
+      const query = {
+        format: 'json',
+        maxheight: 400,
+        maxwidth: 400
+      }
+
+      await checkParamEmbed(server, embedUrl, 200, query)
     })
   })
 
@@ -157,3 +94,14 @@ describe('Test services API validators', function () {
     }
   })
 })
+
+function checkParamEmbed (server: ServerInfo, embedUrl: string, statusCodeExpected = 400, query = {}) {
+  const path = '/services/oembed'
+
+  return makeGetRequest({
+    url: server.url,
+    path,
+    query: Object.assign(query, { url: embedUrl }),
+    statusCodeExpected
+  })
+}