]>
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 name
= 'my super name for pod'
55 const description
= 'my super description for pod'
56 const tags
= [ 'tag' ]
57 const file
= 'video_short2.webm'
58 videosUtils
.uploadVideo(server
.url
, server
.accessToken
, name
, category
, description
, tags
, file
, next
)
61 videosUtils
.getVideosList(server
.url
, function (err
, res
) {
64 const videos
= res
.body
.data
65 videoId
= videos
[0].id
73 password: 'my super password'
76 loginUtils
.getUserAccessToken(server
, user
, function (err
, accessToken
) {
79 userAccessToken
= accessToken
87 describe('When listing users', function () {
88 it('Should fail with a bad start pagination', function (done
) {
91 .query({ start: 'hello' })
92 .set('Accept', 'application/json')
96 it('Should fail with a bad count pagination', function (done
) {
99 .query({ count: 'hello' })
100 .set('Accept', 'application/json')
104 it('Should fail with an incorrect sort', function (done
) {
107 .query({ sort: 'hello' })
108 .set('Accept', 'application/json')
113 describe('When adding a new user', function () {
114 it('Should fail with a too small username', function (done
) {
117 email: 'test@example.com',
118 password: 'mysuperpassword'
121 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
124 it('Should fail with a too long username', function (done
) {
126 username: 'mysuperusernamewhichisverylong',
127 email: 'test@example.com',
128 password: 'mysuperpassword'
131 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
134 it('Should fail with an incorrect username', function (done
) {
136 username: 'my username',
137 email: 'test@example.com',
138 password: 'mysuperpassword'
141 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
144 it('Should fail with a missing email', function (done
) {
147 password: 'mysuperpassword'
150 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
153 it('Should fail with an invalid email', function (done
) {
155 username: 'mysuperusernamewhichisverylong',
156 email: 'testexample.com',
157 password: 'mysuperpassword'
160 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
163 it('Should fail with a too small password', function (done
) {
165 username: 'myusername',
166 email: 'test@example.com',
170 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
173 it('Should fail with a too long password', function (done
) {
175 username: 'myusername',
176 email: 'test@example.com',
177 password: 'my super long password which is very very very very very very very very very very very very very very' +
178 'very very very very very very very very very very very very very very very veryv very very very very' +
179 'very very very very very very very very very very very very very very very very very very very very long'
182 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
185 it('Should fail with an non authenticated user', function (done
) {
187 username: 'myusername',
188 email: 'test@example.com',
189 password: 'my super password'
192 requestsUtils
.makePostBodyRequest(server
.url
, path
, 'super token', data
, done
, 401)
195 it('Should fail if we add a user with the same username', function (done
) {
198 email: 'test@example.com',
199 password: 'my super password'
202 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
, 409)
205 it('Should fail if we add a user with the same email', function (done
) {
207 username: 'myusername',
208 email: 'user1@example.com',
209 password: 'my super password'
212 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
, 409)
215 it('Should succeed with the correct params', function (done
) {
218 email: 'test@example.com',
219 password: 'my super password'
222 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
, 204)
225 it('Should fail with a non admin user', function (done
) {
228 email: 'test@example.com',
229 password: 'my super password'
232 loginUtils
.loginAndGetAccessToken(server
, function (err
, accessToken
) {
235 userAccessToken
= accessToken
239 email: 'test@example.com',
240 password: 'my super password'
243 requestsUtils
.makePostBodyRequest(server
.url
, path
, userAccessToken
, data
, done
, 403)
248 describe('When updating a user', function () {
249 before(function (done
) {
250 usersUtils
.getUsersList(server
.url
, function (err
, res
) {
253 userId
= res
.body
.data
[1].id
254 rootId
= res
.body
.data
[2].id
259 it('Should fail with a too small password', function (done
) {
264 requestsUtils
.makePutBodyRequest(server
.url
, path
+ userId
, userAccessToken
, data
, done
)
267 it('Should fail with a too long password', function (done
) {
269 password: 'my super long password which is very very very very very very very very very very very very very very' +
270 'very very very very very very very very very very very very very very very veryv very very very very' +
271 'very very very very very very very very very very very very very very very very very very very very long'
274 requestsUtils
.makePutBodyRequest(server
.url
, path
+ userId
, userAccessToken
, data
, done
)
277 it('Should fail with an non authenticated user', function (done
) {
279 password: 'my super password'
282 requestsUtils
.makePutBodyRequest(server
.url
, path
+ userId
, 'super token', data
, done
, 401)
285 it('Should succeed with the correct params', function (done
) {
287 password: 'my super password'
290 requestsUtils
.makePutBodyRequest(server
.url
, path
+ userId
, userAccessToken
, data
, done
, 204)
294 describe('When getting my information', function () {
295 it('Should fail with a non authenticated user', function (done
) {
298 .set('Authorization', 'Bearer faketoken')
299 .set('Accept', 'application/json')
303 it('Should success with the correct parameters', function (done
) {
306 .set('Authorization', 'Bearer ' + userAccessToken
)
307 .set('Accept', 'application/json')
312 describe('When getting my video rating', function () {
313 it('Should fail with a non authenticated user', function (done
) {
315 .get(path
+ 'me/videos/' + videoId
+ '/rating')
316 .set('Authorization', 'Bearer faketoken')
317 .set('Accept', 'application/json')
321 it('Should fail with an incorrect video uuid', function (done
) {
323 .get(path
+ 'me/videos/blabla/rating')
324 .set('Authorization', 'Bearer ' + userAccessToken
)
325 .set('Accept', 'application/json')
329 it('Should fail with an unknown video', function (done
) {
331 .get(path
+ 'me/videos/4da6fde3-88f7-4d16-b119-108df5630b06/rating')
332 .set('Authorization', 'Bearer ' + userAccessToken
)
333 .set('Accept', 'application/json')
337 it('Should success with the correct parameters', function (done
) {
339 .get(path
+ 'me/videos/' + videoId
+ '/rating')
340 .set('Authorization', 'Bearer ' + userAccessToken
)
341 .set('Accept', 'application/json')
346 describe('When removing an user', function () {
347 it('Should fail with an incorrect id', function (done
) {
349 .delete(path
+ 'bla-bla')
350 .set('Authorization', 'Bearer ' + server
.accessToken
)
354 it('Should fail with the root user', function (done
) {
356 .delete(path
+ rootId
)
357 .set('Authorization', 'Bearer ' + server
.accessToken
)
361 it('Should return 404 with a non existing id', function (done
) {
364 .set('Authorization', 'Bearer ' + server
.accessToken
)
369 describe('When removing an user', function () {
370 it('Should fail with an incorrect id', function (done
) {
372 .delete(path
+ 'bla-bla')
373 .set('Authorization', 'Bearer ' + server
.accessToken
)
377 it('Should fail with the root user', function (done
) {
379 .delete(path
+ rootId
)
380 .set('Authorization', 'Bearer ' + server
.accessToken
)
384 it('Should return 404 with a non existing id', function (done
) {
387 .set('Authorization', 'Bearer ' + server
.accessToken
)
392 after(function (done
) {
393 process
.kill(-server
.app
.pid
)
395 // Keep the logs if the test failed
397 serversUtils
.flushTests(done
)