Improve check services parameters tests
authorChocobozzz <me@florianbigard.com>
Thu, 28 Dec 2017 13:49:43 +0000 (14:49 +0100)
committerChocobozzz <me@florianbigard.com>
Thu, 28 Dec 2017 13:49:43 +0000 (14:49 +0100)
server/tests/api/check-params/services.ts
server/tests/utils/videos/videos.ts

index f82520574e588f9448c16ded2887cdf32712dcb1..62a14f51f7e374565ec4d1dd2c1b6f2d5cdf583e 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,15 @@ 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 }),
+    token: server.accessToken,
+    statusCodeExpected
+  })
+}
index f64ebd2b0eabc9c64ab7ca1c8357fae4507cb927..fefee4878c93ab9529b270887326b9b5f26c29d9 100644 (file)
@@ -200,7 +200,7 @@ async function testVideoImage (url: string, imageName: string, imagePath: string
                         .get(imagePath)
                         .expect(200)
 
-    const data = await readFilePromise(join(__dirname, '..', 'api', 'fixtures', imageName + '.jpg'))
+    const data = await readFilePromise(join(__dirname, '..', '..', 'api', 'fixtures', imageName + '.jpg'))
 
     return data.equals(res.body)
   } else {
@@ -257,7 +257,7 @@ async function uploadVideo (url: string, accessToken: string, videoAttributesArg
   if (isAbsolute(attributes.fixture)) {
     filePath = attributes.fixture
   } else {
-    filePath = join(__dirname, '..', 'api', 'fixtures', attributes.fixture)
+    filePath = join(__dirname, '..', '..', 'api', 'fixtures', attributes.fixture)
   }
 
   return req.attach('videofile', filePath)
@@ -299,7 +299,7 @@ function rateVideo (url: string, accessToken: string, id: number, rating: string
 function parseTorrentVideo (server: ServerInfo, videoUUID: string, resolution: number) {
   return new Promise<any>((res, rej) => {
     const torrentName = videoUUID + '-' + resolution + '.torrent'
-    const torrentPath = join(__dirname, '..', '..', '..', 'test' + server.serverNumber, 'torrents', torrentName)
+    const torrentPath = join(__dirname, '..', '..', '..', '..', 'test' + server.serverNumber, 'torrents', torrentName)
     readFile(torrentPath, (err, data) => {
       if (err) return rej(err)