Remove one pod (#76)
[oweals/peertube.git] / server / tests / utils / users.js
index ed7a9d6727871dc833a7e83ff15554aab81d5ef6..310dc0c6b14e8c262daaf8b081f496d4e35e2a27 100644 (file)
@@ -3,11 +3,14 @@
 const request = require('supertest')
 
 const usersUtils = {
-  createUser: createUser,
-  getUserInformation: getUserInformation,
-  getUsersList: getUsersList,
-  removeUser: removeUser,
-  updateUser: updateUser
+  createUser,
+  registerUser,
+  getUserInformation,
+  getUserVideoRating,
+  getUsersList,
+  getUsersListPaginationAndSort,
+  removeUser,
+  updateUser
 }
 
 // ---------------------- Export functions --------------------
@@ -19,12 +22,38 @@ function createUser (url, accessToken, username, password, specialStatus, end) {
   }
 
   const path = '/api/v1/users'
+  const body = {
+    username,
+    password,
+    email: username + '@example.com'
+  }
 
   request(url)
     .post(path)
     .set('Accept', 'application/json')
     .set('Authorization', 'Bearer ' + accessToken)
-    .send({ username: username, password: password })
+    .send(body)
+    .expect(specialStatus)
+    .end(end)
+}
+
+function registerUser (url, username, password, specialStatus, end) {
+  if (!end) {
+    end = specialStatus
+    specialStatus = 204
+  }
+
+  const path = '/api/v1/users/register'
+  const body = {
+    username,
+    password,
+    email: username + '@example.com'
+  }
+
+  request(url)
+    .post(path)
+    .set('Accept', 'application/json')
+    .send(body)
     .expect(specialStatus)
     .end(end)
 }
@@ -41,6 +70,18 @@ function getUserInformation (url, accessToken, end) {
     .end(end)
 }
 
+function getUserVideoRating (url, accessToken, videoId, end) {
+  const path = '/api/v1/users/me/videos/' + videoId + '/rating'
+
+  request(url)
+    .get(path)
+    .set('Accept', 'application/json')
+    .set('Authorization', 'Bearer ' + accessToken)
+    .expect(200)
+    .expect('Content-Type', /json/)
+    .end(end)
+}
+
 function getUsersList (url, end) {
   const path = '/api/v1/users'
 
@@ -52,7 +93,21 @@ function getUsersList (url, end) {
     .end(end)
 }
 
-function removeUser (url, token, username, expectedStatus, end) {
+function getUsersListPaginationAndSort (url, start, count, sort, end) {
+  const path = '/api/v1/users'
+
+  request(url)
+    .get(path)
+    .query({ start: start })
+    .query({ count: count })
+    .query({ sort: sort })
+    .set('Accept', 'application/json')
+    .expect(200)
+    .expect('Content-Type', /json/)
+    .end(end)
+}
+
+function removeUser (url, userId, accessToken, expectedStatus, end) {
   if (!end) {
     end = expectedStatus
     expectedStatus = 204
@@ -61,21 +116,25 @@ function removeUser (url, token, username, expectedStatus, end) {
   const path = '/api/v1/users'
 
   request(url)
-    .delete(path + '/' + username)
+    .delete(path + '/' + userId)
     .set('Accept', 'application/json')
-    .set('Authorization', 'Bearer ' + token)
+    .set('Authorization', 'Bearer ' + accessToken)
     .expect(expectedStatus)
     .end(end)
 }
 
-function updateUser (url, userId, accessToken, newPassword, end) {
+function updateUser (url, userId, accessToken, newPassword, displayNSFW, end) {
   const path = '/api/v1/users/' + userId
 
+  const toSend = {}
+  if (newPassword !== undefined && newPassword !== null) toSend.password = newPassword
+  if (displayNSFW !== undefined && displayNSFW !== null) toSend.displayNSFW = displayNSFW
+
   request(url)
     .put(path)
     .set('Accept', 'application/json')
     .set('Authorization', 'Bearer ' + accessToken)
-    .send({ password: newPassword })
+    .send(toSend)
     .expect(204)
     .end(end)
 }