]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/tests/api/check-params/users.js
Server: refractoring upload/update video test utils
[github/Chocobozzz/PeerTube.git] / server / tests / api / check-params / users.js
index c1fcf34a48715817fe0cd68f213ed9df7e6abb50..b04f9f4a6fa6cdefab7b9406fffb30af0b2db95a 100644 (file)
@@ -1,3 +1,5 @@
+/* eslint-disable no-unused-expressions */
+
 'use strict'
 
 const request = require('supertest')
@@ -7,11 +9,13 @@ const loginUtils = require('../../utils/login')
 const requestsUtils = require('../../utils/requests')
 const serversUtils = require('../../utils/servers')
 const usersUtils = require('../../utils/users')
+const videosUtils = require('../../utils/videos')
 
 describe('Test users API validators', function () {
   const path = '/api/v1/users/'
   let userId = null
   let rootId = null
+  let videoId = null
   let server = null
   let userAccessToken = null
 
@@ -45,6 +49,20 @@ describe('Test users API validators', function () {
 
         usersUtils.createUser(server.url, server.accessToken, username, password, next)
       },
+      function (next) {
+        const videoAttributes = {}
+        videosUtils.uploadVideo(server.url, server.accessToken, videoAttributes, next)
+      },
+      function (next) {
+        videosUtils.getVideosList(server.url, function (err, res) {
+          if (err) throw err
+
+          const videos = res.body.data
+          videoId = videos[0].id
+
+          next()
+        })
+      },
       function (next) {
         const user = {
           username: 'user1',
@@ -92,6 +110,7 @@ describe('Test users API validators', function () {
     it('Should fail with a too small username', function (done) {
       const data = {
         username: 'ji',
+        email: 'test@example.com',
         password: 'mysuperpassword'
       }
 
@@ -101,6 +120,7 @@ describe('Test users API validators', function () {
     it('Should fail with a too long username', function (done) {
       const data = {
         username: 'mysuperusernamewhichisverylong',
+        email: 'test@example.com',
         password: 'mysuperpassword'
       }
 
@@ -110,6 +130,26 @@ describe('Test users API validators', function () {
     it('Should fail with an incorrect username', function (done) {
       const data = {
         username: 'my username',
+        email: 'test@example.com',
+        password: 'mysuperpassword'
+      }
+
+      requestsUtils.makePostBodyRequest(server.url, path, server.accessToken, data, done)
+    })
+
+    it('Should fail with a missing email', function (done) {
+      const data = {
+        username: 'ji',
+        password: 'mysuperpassword'
+      }
+
+      requestsUtils.makePostBodyRequest(server.url, path, server.accessToken, data, done)
+    })
+
+    it('Should fail with an invalid email', function (done) {
+      const data = {
+        username: 'mysuperusernamewhichisverylong',
+        email: 'testexample.com',
         password: 'mysuperpassword'
       }
 
@@ -119,6 +159,7 @@ describe('Test users API validators', function () {
     it('Should fail with a too small password', function (done) {
       const data = {
         username: 'myusername',
+        email: 'test@example.com',
         password: 'bla'
       }
 
@@ -128,6 +169,7 @@ describe('Test users API validators', function () {
     it('Should fail with a too long password', function (done) {
       const data = {
         username: 'myusername',
+        email: 'test@example.com',
         password: 'my super long password which is very very very very very very very very very very very very very very' +
                   'very very very very very very very very very very very very very very very veryv very very very very' +
                   'very very very very very very very very very very very very very very very very very very very very long'
@@ -139,6 +181,7 @@ describe('Test users API validators', function () {
     it('Should fail with an non authenticated user', function (done) {
       const data = {
         username: 'myusername',
+        email: 'test@example.com',
         password: 'my super password'
       }
 
@@ -148,6 +191,17 @@ describe('Test users API validators', function () {
     it('Should fail if we add a user with the same username', function (done) {
       const data = {
         username: 'user1',
+        email: 'test@example.com',
+        password: 'my super password'
+      }
+
+      requestsUtils.makePostBodyRequest(server.url, path, server.accessToken, data, done, 409)
+    })
+
+    it('Should fail if we add a user with the same email', function (done) {
+      const data = {
+        username: 'myusername',
+        email: 'user1@example.com',
         password: 'my super password'
       }
 
@@ -157,6 +211,7 @@ describe('Test users API validators', function () {
     it('Should succeed with the correct params', function (done) {
       const data = {
         username: 'user2',
+        email: 'test@example.com',
         password: 'my super password'
       }
 
@@ -166,6 +221,7 @@ describe('Test users API validators', function () {
     it('Should fail with a non admin user', function (done) {
       server.user = {
         username: 'user1',
+        email: 'test@example.com',
         password: 'my super password'
       }
 
@@ -176,6 +232,7 @@ describe('Test users API validators', function () {
 
         const data = {
           username: 'user3',
+          email: 'test@example.com',
           password: 'my super password'
         }
 
@@ -248,6 +305,63 @@ describe('Test users API validators', function () {
     })
   })
 
+  describe('When getting my video rating', function () {
+    it('Should fail with a non authenticated user', function (done) {
+      request(server.url)
+        .get(path + 'me/videos/' + videoId + '/rating')
+        .set('Authorization', 'Bearer faketoken')
+        .set('Accept', 'application/json')
+        .expect(401, done)
+    })
+
+    it('Should fail with an incorrect video uuid', function (done) {
+      request(server.url)
+        .get(path + 'me/videos/blabla/rating')
+        .set('Authorization', 'Bearer ' + userAccessToken)
+        .set('Accept', 'application/json')
+        .expect(400, done)
+    })
+
+    it('Should fail with an unknown video', function (done) {
+      request(server.url)
+        .get(path + 'me/videos/4da6fde3-88f7-4d16-b119-108df5630b06/rating')
+        .set('Authorization', 'Bearer ' + userAccessToken)
+        .set('Accept', 'application/json')
+        .expect(404, done)
+    })
+
+    it('Should success with the correct parameters', function (done) {
+      request(server.url)
+        .get(path + 'me/videos/' + videoId + '/rating')
+        .set('Authorization', 'Bearer ' + userAccessToken)
+        .set('Accept', 'application/json')
+        .expect(200, done)
+    })
+  })
+
+  describe('When removing an user', function () {
+    it('Should fail with an incorrect id', function (done) {
+      request(server.url)
+        .delete(path + 'bla-bla')
+        .set('Authorization', 'Bearer ' + server.accessToken)
+        .expect(400, done)
+    })
+
+    it('Should fail with the root user', function (done) {
+      request(server.url)
+        .delete(path + rootId)
+        .set('Authorization', 'Bearer ' + server.accessToken)
+        .expect(400, done)
+    })
+
+    it('Should return 404 with a non existing id', function (done) {
+      request(server.url)
+        .delete(path + '45')
+        .set('Authorization', 'Bearer ' + server.accessToken)
+        .expect(404, done)
+    })
+  })
+
   describe('When removing an user', function () {
     it('Should fail with an incorrect id', function (done) {
       request(server.url)