Server: refractoring upload/update video test utils
authorChocobozzz <florian.bigard@gmail.com>
Sun, 26 Mar 2017 16:39:01 +0000 (18:39 +0200)
committerChocobozzz <florian.bigard@gmail.com>
Sun, 26 Mar 2017 16:39:01 +0000 (18:39 +0200)
12 files changed:
server/tests/api/check-params/users.js
server/tests/api/check-params/video-abuses.js
server/tests/api/friends-advanced.js
server/tests/api/index.js
server/tests/api/multiple-pods.js
server/tests/api/requests.js
server/tests/api/single-pod.js
server/tests/api/users.js
server/tests/api/video-abuse.js
server/tests/real-world/real-world.js
server/tests/real-world/tools/upload.js
server/tests/utils/videos.js

index f6fbcf555044d1b6a783eb8e3a5aa2d5ede7685b..b04f9f4a6fa6cdefab7b9406fffb30af0b2db95a 100644 (file)
@@ -50,12 +50,8 @@ describe('Test users API validators', function () {
         usersUtils.createUser(server.url, server.accessToken, username, password, next)
       },
       function (next) {
-        const name = 'my super name for pod'
-        const category = 5
-        const description = 'my super description for pod'
-        const tags = [ 'tag' ]
-        const file = 'video_short2.webm'
-        videosUtils.uploadVideo(server.url, server.accessToken, name, category, description, tags, file, next)
+        const videoAttributes = {}
+        videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, next)
       },
       function (next) {
         videosUtils.getVideosList(server.url, function (err, res) {
index 061b80be830cb5b81850b76f8f85bd77d31cebae..6dc5a70905a07544096ef31ed4dab7d8f09fd3d2 100644 (file)
@@ -61,12 +61,8 @@ describe('Test video abuses API validators', function () {
       },
       // Upload some videos on each pods
       function (next) {
-        const name = 'my super name for pod'
-        const category = 2
-        const description = 'my super description for pod'
-        const tags = [ 'tag' ]
-        const file = 'video_short2.webm'
-        videosUtils.uploadVideo(server.url, server.accessToken, name, category, description, tags, file, next)
+        const videoAttributes = {}
+        videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, next)
       },
       function (next) {
         videosUtils.getVideosList(server.url, function (err, res) {
index 584c38c245b94651bc499d004d0e85bbef4e0591..afa69991482944bd16af90f7d8892e53cdec0a7e 100644 (file)
@@ -31,14 +31,12 @@ describe('Test advanced friends', function () {
   }
 
   function uploadVideo (podNumber, callback) {
-    const name = 'my super video'
-    const category = 5
-    const description = 'my super description'
-    const tags = [ 'tag1', 'tag2' ]
-    const fixture = 'video_short.webm'
+    const videoAttributes = {
+      tags: [ 'tag1', 'tag2' ]
+    }
     const server = servers[podNumber - 1]
 
-    return videosUtils.uploadVideo(server.url, server.accessToken, name, category, description, tags, fixture, callback)
+    return videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, callback)
   }
 
   function getVideos (podNumber, callback) {
index dc6ef92ab133027c7e07c9e0761076396c81daf8..fcd12617ef55f46e4a5cd44f3794520fcec2313e 100644 (file)
@@ -7,4 +7,5 @@ require('./friends-basic')
 require('./users')
 require('./single-pod')
 require('./multiple-pods')
+require('./requests')
 require('./friends-advanced')
index eccc9ecef6494de6e3907562b12b870496212300..d5c723b3bc9bf49fca648620930f5aa57e8d497d 100644 (file)
@@ -80,12 +80,13 @@ describe('Test multiple pods', function () {
 
       series([
         function (next) {
-          const name = 'my super name for pod 1'
-          const category = 5
-          const description = 'my super description for pod 1'
-          const tags = [ 'tag1p1', 'tag2p1' ]
-          const file = 'video_short1.webm'
-          videosUtils.uploadVideo(servers[0].url, servers[0].accessToken, name, category, description, tags, file, next)
+          const videoAttributes = {
+            name: 'my super name for pod 1',
+            description: 'my super description for pod 1',
+            tags: [ 'tag1p1', 'tag2p1' ],
+            fixture: 'video_short1.webm'
+          }
+          videosUtils.uploadVideo(servers[0].url, servers[0].accessToken, videoAttributes, next)
         },
         function (next) {
           setTimeout(next, 11000)
@@ -146,12 +147,14 @@ describe('Test multiple pods', function () {
 
       series([
         function (next) {
-          const name = 'my super name for pod 2'
-          const category = 4
-          const description = 'my super description for pod 2'
-          const tags = [ 'tag1p2', 'tag2p2', 'tag3p2' ]
-          const file = 'video_short2.webm'
-          videosUtils.uploadVideo(servers[1].url, servers[1].accessToken, name, category, description, tags, file, next)
+          const videoAttributes = {
+            name: 'my super name for pod 2',
+            category: 4,
+            description: 'my super description for pod 2',
+            tags: [ 'tag1p2', 'tag2p2', 'tag3p2' ],
+            fixture: 'video_short2.webm'
+          }
+          videosUtils.uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes, next)
         },
         function (next) {
           setTimeout(next, 11000)
@@ -212,20 +215,24 @@ describe('Test multiple pods', function () {
 
       series([
         function (next) {
-          const name = 'my super name for pod 3'
-          const category = 6
-          const description = 'my super description for pod 3'
-          const tags = [ 'tag1p3' ]
-          const file = 'video_short3.webm'
-          videosUtils.uploadVideo(servers[2].url, servers[2].accessToken, name, category, description, tags, file, next)
+          const videoAttributes = {
+            name: 'my super name for pod 3',
+            category: 6,
+            description: 'my super description for pod 3',
+            tags: [ 'tag1p3' ],
+            fixture: 'video_short3.webm'
+          }
+          videosUtils.uploadVideo(servers[2].url, servers[2].accessToken, videoAttributes, next)
         },
         function (next) {
-          const name = 'my super name for pod 3-2'
-          const category = 7
-          const description = 'my super description for pod 3-2'
-          const tags = [ 'tag2p3', 'tag3p3', 'tag4p3' ]
-          const file = 'video_short.webm'
-          videosUtils.uploadVideo(servers[2].url, servers[2].accessToken, name, category, description, tags, file, next)
+          const videoAttributes = {
+            name: 'my super name for pod 3-2',
+            category: 7,
+            description: 'my super description for pod 3-2',
+            tags: [ 'tag2p3', 'tag3p3', 'tag4p3' ],
+            fixture: 'video_short.webm'
+          }
+          videosUtils.uploadVideo(servers[2].url, servers[2].accessToken, videoAttributes, next)
         },
         function (next) {
           setTimeout(next, 22000)
@@ -614,12 +621,13 @@ describe('Test multiple pods', function () {
     it('Should update the video 3 by asking pod 3', function (done) {
       this.timeout(15000)
 
-      const name = 'my super video updated'
-      const category = 10
-      const description = 'my super description updated'
-      const tags = [ 'tagup1', 'tagup2' ]
-
-      videosUtils.updateVideo(servers[2].url, servers[2].accessToken, toRemove[0].id, name, category, description, tags, function (err) {
+      const attributes = {
+        name: 'my super video updated',
+        category: 10,
+        description: 'my super description updated',
+        tags: [ 'tagup1', 'tagup2' ]
+      }
+      videosUtils.updateVideo(servers[2].url, servers[2].accessToken, toRemove[0].id, attributes, function (err) {
         if (err) throw err
 
         setTimeout(done, 11000)
index b4b8393e355213b81cfee26b47c09e7568b611f9..8762163af508d6b60ae010db2c8e45b26864a2e7 100644 (file)
@@ -13,17 +13,16 @@ const serversUtils = require('../utils/servers')
 const videosUtils = require('../utils/videos')
 
 describe('Test requests stats', function () {
+  const requestSchedulerNames = [ 'requestScheduler', 'requestVideoQaduScheduler', 'requestVideoEventScheduler' ]
   const path = '/api/v1/requests/stats'
   let servers = []
 
   function uploadVideo (server, callback) {
-    const name = 'my super video'
-    const category = 5
-    const description = 'my super description'
-    const tags = [ 'tag1', 'tag2' ]
-    const fixture = 'video_short.webm'
+    const videoAttributes = {
+      tags: [ 'tag1', 'tag2' ]
+    }
 
-    videosUtils.uploadVideo(server.url, server.accessToken, name, category, description, tags, fixture, callback)
+    videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, callback)
   }
 
   function getRequestsStats (server, callback) {
@@ -64,9 +63,13 @@ describe('Test requests stats', function () {
     getRequestsStats(server, function (err, res) {
       if (err) throw err
 
-      const body = res.body
-      expect(body.remainingMilliSeconds).to.be.at.least(0)
-      expect(body.remainingMilliSeconds).to.be.at.most(10000)
+      const requestSchedulers = res.body
+      for (const requestSchedulerName of requestSchedulerNames) {
+        const requestScheduler = requestSchedulers[requestSchedulerName]
+
+        expect(requestScheduler.remainingMilliSeconds).to.be.at.least(0)
+        expect(requestScheduler.remainingMilliSeconds).to.be.at.most(10000)
+      }
 
       done()
     })
@@ -86,8 +89,9 @@ describe('Test requests stats', function () {
         getRequestsStats(server, function (err, res) {
           if (err) throw err
 
-          const body = res.body
-          expect(body.totalRequests).to.equal(1)
+          const requestSchedulers = res.body
+          const requestScheduler = requestSchedulers.requestScheduler
+          expect(requestScheduler.totalRequests).to.equal(1)
 
           done()
         })
index d583592d8755583f1b05ee00914ffccfd1610dbf..9465f60345e0eb50225169992767968760a59335 100644 (file)
@@ -70,13 +70,12 @@ describe('Test a single pod', function () {
   })
 
   it('Should upload the video', function (done) {
-    this.timeout(5000)
-    const name = 'my super name'
-    const description = 'my super description'
-    const category = 2
-    const tags = [ 'tag1', 'tag2', 'tag3' ]
-    const file = 'video_short.webm'
-    videosUtils.uploadVideo(server.url, server.accessToken, name, category, description, tags, file, done)
+    const videoAttributes = {
+      name: 'my super name',
+      category: 2,
+      tags: [ 'tag1', 'tag2', 'tag3' ]
+    }
+    videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, done)
   })
 
   it('Should seed the uploaded video', function (done) {
@@ -321,12 +320,15 @@ describe('Test a single pod', function () {
       'video_short1.webm', 'video_short2.webm', 'video_short3.webm'
     ]
     each(videos, function (video, callbackEach) {
-      const name = video + ' name'
-      const description = video + ' description'
-      const category = 2
-      const tags = [ 'tag1', 'tag2', 'tag3' ]
+      const videoAttributes = {
+        name: video + ' name',
+        description: video + ' description',
+        category: 2,
+        tags: [ 'tag1', 'tag2', 'tag3' ],
+        fixture: video
+      }
 
-      videosUtils.uploadVideo(server.url, server.accessToken, name, category, description, tags, video, callbackEach)
+      videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, callbackEach)
     }, done)
   })
 
@@ -543,12 +545,13 @@ describe('Test a single pod', function () {
   })
 
   it('Should update a video', function (done) {
-    const name = 'my super video updated'
-    const category = 4
-    const description = 'my super description updated'
-    const tags = [ 'tagup1', 'tagup2' ]
-
-    videosUtils.updateVideo(server.url, server.accessToken, videoId, name, category, description, tags, done)
+    const attributes = {
+      name: 'my super video updated',
+      category: 4,
+      description: 'my super description updated',
+      tags: [ 'tagup1', 'tagup2' ]
+    }
+    videosUtils.updateVideo(server.url, server.accessToken, videoId, attributes, done)
   })
 
   it('Should have the video updated', function (done) {
@@ -586,9 +589,11 @@ describe('Test a single pod', function () {
   })
 
   it('Should update only the tags of a video', function (done) {
-    const tags = [ 'tag1', 'tag2', 'supertag' ]
+    const attributes = {
+      tags: [ 'tag1', 'tag2', 'supertag' ]
+    }
 
-    videosUtils.updateVideo(server.url, server.accessToken, videoId, null, null, null, tags, function (err) {
+    videosUtils.updateVideo(server.url, server.accessToken, videoId, attributes, function (err) {
       if (err) throw err
 
       videosUtils.getVideo(server.url, videoId, function (err, res) {
@@ -613,9 +618,11 @@ describe('Test a single pod', function () {
   })
 
   it('Should update only the description of a video', function (done) {
-    const description = 'hello everybody'
+    const attributes = {
+      description: 'hello everybody'
+    }
 
-    videosUtils.updateVideo(server.url, server.accessToken, videoId, null, null, description, null, function (err) {
+    videosUtils.updateVideo(server.url, server.accessToken, videoId, attributes, function (err) {
       if (err) throw err
 
       videosUtils.getVideo(server.url, videoId, function (err, res) {
index 0f062c11f85b72754741d129f88640d0384dcc28..2b6956baadcc75701772dc158e804522171805e3 100644 (file)
@@ -85,12 +85,8 @@ describe('Test users', function () {
   it('Should not be able to upload a video', function (done) {
     accessToken = 'mysupertoken'
 
-    const name = 'my super name'
-    const description = 'my super description'
-    const category = 5
-    const tags = [ 'tag1', 'tag2' ]
-    const video = 'video_short.webm'
-    videosUtils.uploadVideo(server.url, accessToken, name, category, description, tags, video, 401, done)
+    const videoAttributes = {}
+    videosUtils.uploadVideo(server.url, accessToken, videoAttributes, 401, done)
   })
 
   it('Should not be able to make friends', function (done) {
@@ -113,12 +109,8 @@ describe('Test users', function () {
   })
 
   it('Should upload the video with the correct token', function (done) {
-    const name = 'my super name'
-    const category = 5
-    const description = 'my super description'
-    const tags = [ 'tag1', 'tag2' ]
-    const video = 'video_short.webm'
-    videosUtils.uploadVideo(server.url, accessToken, name, category, description, tags, video, 204, function (err, res) {
+    const videoAttributes = {}
+    videosUtils.uploadVideo(server.url, accessToken, videoAttributes, 204, function (err, res) {
       if (err) throw err
 
       videosUtils.getVideosList(server.url, function (err, res) {
@@ -134,12 +126,8 @@ describe('Test users', function () {
   })
 
   it('Should upload the video again with the correct token', function (done) {
-    const name = 'my super name 2'
-    const category = 5
-    const description = 'my super description 2'
-    const tags = [ 'tag1' ]
-    const video = 'video_short.webm'
-    videosUtils.uploadVideo(server.url, accessToken, name, category, description, tags, video, 204, done)
+    const videoAttributes = {}
+    videosUtils.uploadVideo(server.url, accessToken, videoAttributes, 204, done)
   })
 
   it('Should retrieve a video rating', function (done) {
@@ -230,12 +218,8 @@ describe('Test users', function () {
   it('Should be able to upload a video with this user', function (done) {
     this.timeout(5000)
 
-    const name = 'my super name'
-    const category = 5
-    const description = 'my super description'
-    const tags = [ 'tag1', 'tag2', 'tag3' ]
-    const file = 'video_short.webm'
-    videosUtils.uploadVideo(server.url, accessTokenUser, name, category, description, tags, file, done)
+    const videoAttributes = {}
+    videosUtils.uploadVideo(server.url, accessTokenUser, videoAttributes, done)
   })
 
   it('Should list all the users', function (done) {
index 871054788dec75f121f0671389c18d94867a5af4..7db067585ef374eb8cb1cc83b395ee64f29665e8 100644 (file)
@@ -45,20 +45,18 @@ describe('Test video abuses', function () {
       },
       // Upload some videos on each pods
       function (next) {
-        const name = 'my super name for pod 1'
-        const category = 5
-        const description = 'my super description for pod 1'
-        const tags = [ 'tag' ]
-        const file = 'video_short2.webm'
-        videosUtils.uploadVideo(servers[0].url, servers[0].accessToken, name, category, description, tags, file, next)
+        const videoAttributes = {
+          name: 'my super name for pod 1',
+          description: 'my super description for pod 1'
+        }
+        videosUtils.uploadVideo(servers[0].url, servers[0].accessToken, videoAttributes, next)
       },
       function (next) {
-        const name = 'my super name for pod 2'
-        const category = 5
-        const description = 'my super description for pod 2'
-        const tags = [ 'tag' ]
-        const file = 'video_short2.webm'
-        videosUtils.uploadVideo(servers[1].url, servers[1].accessToken, name, category, description, tags, file, next)
+        const videoAttributes = {
+          name: 'my super name for pod 2',
+          description: 'my super description for pod 2'
+        }
+        videosUtils.uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes, next)
       },
       // Wait videos propagation
       function (next) {
index f17c83f8590604e3b9c3c267d061806cc9cc1ada..32afeec68d0b8f4f437307a3472d44072fe60bd7 100644 (file)
@@ -200,15 +200,16 @@ function exitServers (servers, callback) {
 function upload (servers, numServer, callback) {
   if (!callback) callback = function () {}
 
-  const name = Date.now() + ' name'
-  const category = 4
-  const description = Date.now() + ' description'
-  const tags = [ Date.now().toString().substring(0, 5) + 't1', Date.now().toString().substring(0, 5) + 't2' ]
-  const file = 'video_short1.webm'
-
   console.log('Uploading video to server ' + numServer)
 
-  videosUtils.uploadVideo(servers[numServer].url, servers[numServer].accessToken, name, category, description, tags, file, callback)
+  const videoAttributes = {
+    name: Date.now() + ' name',
+    category: 4,
+    description: Date.now() + ' description',
+    tags: [ Date.now().toString().substring(0, 5) + 't1', Date.now().toString().substring(0, 5) + 't2' ],
+    fixture: 'video_short1.webm'
+  }
+  videosUtils.uploadVideo(servers[numServer].url, servers[numServer].accessToken, videoAttributes, callback)
 }
 
 function update (servers, numServer, callback) {
@@ -221,13 +222,15 @@ function update (servers, numServer, callback) {
     if (videos.length === 0) return callback()
 
     const toUpdate = videos[getRandomInt(0, videos.length)].id
-    const name = Date.now() + ' name'
-    const description = Date.now() + ' description'
-    const tags = [ Date.now().toString().substring(0, 5) + 't1', Date.now().toString().substring(0, 5) + 't2' ]
+    const attributes = {
+      name: Date.now() + ' name',
+      description: Date.now() + ' description',
+      tags: [ Date.now().toString().substring(0, 5) + 't1', Date.now().toString().substring(0, 5) + 't2' ]
+    }
 
     console.log('Updating video of server ' + numServer)
 
-    videosUtils.updateVideo(servers[numServer].url, servers[numServer].accessToken, toUpdate, name, description, tags, callback)
+    videosUtils.updateVideo(servers[numServer].url, servers[numServer].accessToken, toUpdate, attributes, callback)
   })
 }
 
index 49076ee2ad809df6c4e1b5e49815e78d781db3cc..856251c7fd9b8fc87ed3af119fe61667c37f5a8f 100644 (file)
@@ -49,10 +49,17 @@ function list (val) {
   return val.split(',')
 }
 
-function upload (url, accessToken, name, category, description, tags, file) {
+function upload (url, accessToken, name, category, description, tags, fixture) {
   console.log('Uploading %s video...', program.name)
 
-  utils.uploadVideo(url, accessToken, name, category, description, tags, file, function (err) {
+  const videoAttributes = {
+    name,
+    category,
+    description,
+    tags,
+    fixture
+  }
+  utils.uploadVideo(url, accessToken, videoAttributes, function (err) {
     if (err) throw err
 
     console.log('Video uploaded.')
index 0aa6ec5a8074963b1f50904fd7b2ede57017a37f..ad0d7407686e9767d0dcc2e3a7075feb68e12e42 100644 (file)
@@ -193,7 +193,7 @@ function testVideoImage (url, videoName, imagePath, callback) {
   }
 }
 
-function uploadVideo (url, accessToken, name, category, description, tags, fixture, specialStatus, end) {
+function uploadVideo (url, accessToken, videoAttributesArg, specialStatus, end) {
   if (!end) {
     end = specialStatus
     specialStatus = 204
@@ -201,23 +201,33 @@ function uploadVideo (url, accessToken, name, category, description, tags, fixtu
 
   const path = '/api/v1/videos'
 
+  // Default attributes
+  let attributes = {
+    name: 'my super video',
+    category: 5,
+    description: 'my super description',
+    tags: [ 'tag' ],
+    fixture: 'video_short.webm'
+  }
+  attributes = Object.assign(attributes, videoAttributesArg)
+
   const req = request(url)
               .post(path)
               .set('Accept', 'application/json')
               .set('Authorization', 'Bearer ' + accessToken)
-              .field('name', name)
-              .field('category', category)
-              .field('description', description)
+              .field('name', attributes.name)
+              .field('category', attributes.category)
+              .field('description', attributes.description)
 
-  for (let i = 0; i < tags.length; i++) {
-    req.field('tags[' + i + ']', tags[i])
+  for (let i = 0; i < attributes.tags.length; i++) {
+    req.field('tags[' + i + ']', attributes.tags[i])
   }
 
   let filepath = ''
-  if (pathUtils.isAbsolute(fixture)) {
-    filepath = fixture
+  if (pathUtils.isAbsolute(attributes.fixture)) {
+    filepath = attributes.fixture
   } else {
-    filepath = pathUtils.join(__dirname, '..', 'api', 'fixtures', fixture)
+    filepath = pathUtils.join(__dirname, '..', 'api', 'fixtures', attributes.fixture)
   }
 
   req.attach('videofile', filepath)
@@ -225,7 +235,7 @@ function uploadVideo (url, accessToken, name, category, description, tags, fixtu
      .end(end)
 }
 
-function updateVideo (url, accessToken, id, name, category, description, tags, specialStatus, end) {
+function updateVideo (url, accessToken, id, attributes, specialStatus, end) {
   if (!end) {
     end = specialStatus
     specialStatus = 204
@@ -238,13 +248,13 @@ function updateVideo (url, accessToken, id, name, category, description, tags, s
               .set('Accept', 'application/json')
               .set('Authorization', 'Bearer ' + accessToken)
 
-  if (name) req.field('name', name)
-  if (category) req.field('category', category)
-  if (description) req.field('description', description)
+  if (attributes.name) req.field('name', attributes.name)
+  if (attributes.category) req.field('category', attributes.category)
+  if (attributes.description) req.field('description', attributes.description)
 
-  if (tags) {
-    for (let i = 0; i < tags.length; i++) {
-      req.field('tags[' + i + ']', tags[i])
+  if (attributes.tags) {
+    for (let i = 0; i < attributes.tags.length; i++) {
+      req.field('tags[' + i + ']', attributes.tags[i])
     }
   }