]>
git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/tests/api/check-params/users.js
1 /* eslint-disable no-unused-expressions */
5 const request
= require('supertest')
6 const series
= require('async/series')
8 const loginUtils
= require('../../utils/login')
9 const requestsUtils
= require('../../utils/requests')
10 const serversUtils
= require('../../utils/servers')
11 const usersUtils
= require('../../utils/users')
12 const videosUtils
= require('../../utils/videos')
14 describe('Test users API validators', function () {
15 const path
= '/api/v1/users/'
20 let userAccessToken
= null
22 // ---------------------------------------------------------------
24 before(function (done
) {
29 serversUtils
.flushTests(next
)
32 serversUtils
.runServer(1, function (server1
) {
39 loginUtils
.loginAndGetAccessToken(server
, function (err
, token
) {
41 server
.accessToken
= token
47 const username
= 'user1'
48 const password
= 'my super password'
50 usersUtils
.createUser(server
.url
, server
.accessToken
, username
, password
, next
)
53 const videoAttributes
= {}
54 videosUtils
.uploadVideo(server
.url
, server
.accessToken
, videoAttributes
, next
)
57 videosUtils
.getVideosList(server
.url
, function (err
, res
) {
60 const videos
= res
.body
.data
61 videoId
= videos
[0].id
69 password: 'my super password'
72 loginUtils
.getUserAccessToken(server
, user
, function (err
, accessToken
) {
75 userAccessToken
= accessToken
83 describe('When listing users', function () {
84 it('Should fail with a bad start pagination', function (done
) {
87 .query({ start: 'hello' })
88 .set('Accept', 'application/json')
92 it('Should fail with a bad count pagination', function (done
) {
95 .query({ count: 'hello' })
96 .set('Accept', 'application/json')
100 it('Should fail with an incorrect sort', function (done
) {
103 .query({ sort: 'hello' })
104 .set('Accept', 'application/json')
109 describe('When adding a new user', function () {
110 it('Should fail with a too small username', function (done
) {
113 email: 'test@example.com',
114 password: 'mysuperpassword'
117 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
120 it('Should fail with a too long username', function (done
) {
122 username: 'mysuperusernamewhichisverylong',
123 email: 'test@example.com',
124 password: 'mysuperpassword'
127 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
130 it('Should fail with an incorrect username', function (done
) {
132 username: 'my username',
133 email: 'test@example.com',
134 password: 'mysuperpassword'
137 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
140 it('Should fail with a missing email', function (done
) {
143 password: 'mysuperpassword'
146 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
149 it('Should fail with an invalid email', function (done
) {
151 username: 'mysuperusernamewhichisverylong',
152 email: 'testexample.com',
153 password: 'mysuperpassword'
156 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
159 it('Should fail with a too small password', function (done
) {
161 username: 'myusername',
162 email: 'test@example.com',
166 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
169 it('Should fail with a too long password', function (done
) {
171 username: 'myusername',
172 email: 'test@example.com',
173 password: 'my super long password which is very very very very very very very very very very very very very very' +
174 'very very very very very very very very very very very very very very very veryv very very very very' +
175 'very very very very very very very very very very very very very very very very very very very very long'
178 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
181 it('Should fail with an non authenticated user', function (done
) {
183 username: 'myusername',
184 email: 'test@example.com',
185 password: 'my super password'
188 requestsUtils
.makePostBodyRequest(server
.url
, path
, 'super token', data
, done
, 401)
191 it('Should fail if we add a user with the same username', function (done
) {
194 email: 'test@example.com',
195 password: 'my super password'
198 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
, 409)
201 it('Should fail if we add a user with the same email', function (done
) {
203 username: 'myusername',
204 email: 'user1@example.com',
205 password: 'my super password'
208 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
, 409)
211 it('Should succeed with the correct params', function (done
) {
214 email: 'test@example.com',
215 password: 'my super password'
218 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
, 204)
221 it('Should fail with a non admin user', function (done
) {
224 email: 'test@example.com',
225 password: 'my super password'
228 loginUtils
.loginAndGetAccessToken(server
, function (err
, accessToken
) {
231 userAccessToken
= accessToken
235 email: 'test@example.com',
236 password: 'my super password'
239 requestsUtils
.makePostBodyRequest(server
.url
, path
, userAccessToken
, data
, done
, 403)
244 describe('When updating a user', function () {
245 before(function (done
) {
246 usersUtils
.getUsersList(server
.url
, function (err
, res
) {
249 userId
= res
.body
.data
[1].id
250 rootId
= res
.body
.data
[2].id
255 it('Should fail with a too small password', function (done
) {
260 requestsUtils
.makePutBodyRequest(server
.url
, path
+ userId
, userAccessToken
, data
, done
)
263 it('Should fail with a too long password', function (done
) {
265 password: 'my super long password which is very very very very very very very very very very very very very very' +
266 'very very very very very very very very very very very very very very very veryv very very very very' +
267 'very very very very very very very very very very very very very very very very very very very very long'
270 requestsUtils
.makePutBodyRequest(server
.url
, path
+ userId
, userAccessToken
, data
, done
)
273 it('Should fail with an non authenticated user', function (done
) {
275 password: 'my super password'
278 requestsUtils
.makePutBodyRequest(server
.url
, path
+ userId
, 'super token', data
, done
, 401)
281 it('Should succeed with the correct params', function (done
) {
283 password: 'my super password'
286 requestsUtils
.makePutBodyRequest(server
.url
, path
+ userId
, userAccessToken
, data
, done
, 204)
290 describe('When getting my information', function () {
291 it('Should fail with a non authenticated user', function (done
) {
294 .set('Authorization', 'Bearer faketoken')
295 .set('Accept', 'application/json')
299 it('Should success with the correct parameters', function (done
) {
302 .set('Authorization', 'Bearer ' + userAccessToken
)
303 .set('Accept', 'application/json')
308 describe('When getting my video rating', function () {
309 it('Should fail with a non authenticated user', function (done
) {
311 .get(path
+ 'me/videos/' + videoId
+ '/rating')
312 .set('Authorization', 'Bearer faketoken')
313 .set('Accept', 'application/json')
317 it('Should fail with an incorrect video uuid', function (done
) {
319 .get(path
+ 'me/videos/blabla/rating')
320 .set('Authorization', 'Bearer ' + userAccessToken
)
321 .set('Accept', 'application/json')
325 it('Should fail with an unknown video', function (done
) {
327 .get(path
+ 'me/videos/4da6fde3-88f7-4d16-b119-108df5630b06/rating')
328 .set('Authorization', 'Bearer ' + userAccessToken
)
329 .set('Accept', 'application/json')
333 it('Should success with the correct parameters', function (done
) {
335 .get(path
+ 'me/videos/' + videoId
+ '/rating')
336 .set('Authorization', 'Bearer ' + userAccessToken
)
337 .set('Accept', 'application/json')
342 describe('When removing an user', function () {
343 it('Should fail with an incorrect id', function (done
) {
345 .delete(path
+ 'bla-bla')
346 .set('Authorization', 'Bearer ' + server
.accessToken
)
350 it('Should fail with the root user', function (done
) {
352 .delete(path
+ rootId
)
353 .set('Authorization', 'Bearer ' + server
.accessToken
)
357 it('Should return 404 with a non existing id', function (done
) {
360 .set('Authorization', 'Bearer ' + server
.accessToken
)
365 describe('When removing an user', function () {
366 it('Should fail with an incorrect id', function (done
) {
368 .delete(path
+ 'bla-bla')
369 .set('Authorization', 'Bearer ' + server
.accessToken
)
373 it('Should fail with the root user', function (done
) {
375 .delete(path
+ rootId
)
376 .set('Authorization', 'Bearer ' + server
.accessToken
)
380 it('Should return 404 with a non existing id', function (done
) {
383 .set('Authorization', 'Bearer ' + server
.accessToken
)
388 after(function (done
) {
389 process
.kill(-server
.app
.pid
)
391 // Keep the logs if the test failed
393 serversUtils
.flushTests(done
)