]>
git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/tests/api/check-params/users.js
debf63cf6892d2e391b41eba5871b65412c127f6
3 const request
= require('supertest')
4 const series
= require('async/series')
6 const loginUtils
= require('../../utils/login')
7 const requestsUtils
= require('../../utils/requests')
8 const serversUtils
= require('../../utils/servers')
9 const usersUtils
= require('../../utils/users')
11 describe('Test users API validators', function () {
12 const path
= '/api/v1/users/'
16 let userAccessToken
= null
18 // ---------------------------------------------------------------
20 before(function (done
) {
25 serversUtils
.flushTests(next
)
28 serversUtils
.runServer(1, function (server1
) {
35 loginUtils
.loginAndGetAccessToken(server
, function (err
, token
) {
37 server
.accessToken
= token
43 const username
= 'user1'
44 const password
= 'my super password'
46 usersUtils
.createUser(server
.url
, server
.accessToken
, username
, password
, next
)
51 password: 'my super password'
54 loginUtils
.getUserAccessToken(server
, user
, function (err
, accessToken
) {
57 userAccessToken
= accessToken
65 describe('When listing users', function () {
66 it('Should fail with a bad start pagination', function (done
) {
69 .query({ start: 'hello' })
70 .set('Accept', 'application/json')
74 it('Should fail with a bad count pagination', function (done
) {
77 .query({ count: 'hello' })
78 .set('Accept', 'application/json')
82 it('Should fail with an incorrect sort', function (done
) {
85 .query({ sort: 'hello' })
86 .set('Accept', 'application/json')
91 describe('When adding a new user', function () {
92 it('Should fail with a too small username', function (done
) {
95 email: 'test@example.com',
96 password: 'mysuperpassword'
99 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
102 it('Should fail with a too long username', function (done
) {
104 username: 'mysuperusernamewhichisverylong',
105 email: 'test@example.com',
106 password: 'mysuperpassword'
109 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
112 it('Should fail with an incorrect username', function (done
) {
114 username: 'my username',
115 email: 'test@example.com',
116 password: 'mysuperpassword'
119 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
122 it('Should fail with a missing email', function (done
) {
125 password: 'mysuperpassword'
128 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
131 it('Should fail with an invalid email', function (done
) {
133 username: 'mysuperusernamewhichisverylong',
134 email: 'testexample.com',
135 password: 'mysuperpassword'
138 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
141 it('Should fail with a too small password', function (done
) {
143 username: 'myusername',
144 email: 'test@example.com',
148 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
151 it('Should fail with a too long password', function (done
) {
153 username: 'myusername',
154 email: 'test@example.com',
155 password: 'my super long password which is very very very very very very very very very very very very very very' +
156 'very very very very very very very very very very very very very very very veryv very very very very' +
157 'very very very very very very very very very very very very very very very very very very very very long'
160 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
163 it('Should fail with an non authenticated user', function (done
) {
165 username: 'myusername',
166 email: 'test@example.com',
167 password: 'my super password'
170 requestsUtils
.makePostBodyRequest(server
.url
, path
, 'super token', data
, done
, 401)
173 it('Should fail if we add a user with the same username', function (done
) {
176 email: 'test@example.com',
177 password: 'my super password'
180 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
, 409)
183 it('Should fail if we add a user with the same email', function (done
) {
185 username: 'myusername',
186 email: 'user1@example.com',
187 password: 'my super password'
190 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
, 409)
193 it('Should succeed with the correct params', function (done
) {
196 email: 'test@example.com',
197 password: 'my super password'
200 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
, 204)
203 it('Should fail with a non admin user', function (done
) {
206 email: 'test@example.com',
207 password: 'my super password'
210 loginUtils
.loginAndGetAccessToken(server
, function (err
, accessToken
) {
213 userAccessToken
= accessToken
217 email: 'test@example.com',
218 password: 'my super password'
221 requestsUtils
.makePostBodyRequest(server
.url
, path
, userAccessToken
, data
, done
, 403)
226 describe('When updating a user', function () {
227 before(function (done
) {
228 usersUtils
.getUsersList(server
.url
, function (err
, res
) {
231 userId
= res
.body
.data
[1].id
232 rootId
= res
.body
.data
[2].id
237 it('Should fail with a too small password', function (done
) {
242 requestsUtils
.makePutBodyRequest(server
.url
, path
+ userId
, userAccessToken
, data
, done
)
245 it('Should fail with a too long password', function (done
) {
247 password: 'my super long password which is very very very very very very very very very very very very very very' +
248 'very very very very very very very very very very very very very very very veryv very very very very' +
249 'very very very very very very very very very very very very very very very very very very very very long'
252 requestsUtils
.makePutBodyRequest(server
.url
, path
+ userId
, userAccessToken
, data
, done
)
255 it('Should fail with an non authenticated user', function (done
) {
257 password: 'my super password'
260 requestsUtils
.makePutBodyRequest(server
.url
, path
+ userId
, 'super token', data
, done
, 401)
263 it('Should succeed with the correct params', function (done
) {
265 password: 'my super password'
268 requestsUtils
.makePutBodyRequest(server
.url
, path
+ userId
, userAccessToken
, data
, done
, 204)
272 describe('When getting my information', function () {
273 it('Should fail with a non authenticated user', function (done
) {
276 .set('Authorization', 'Bearer faketoken')
277 .set('Accept', 'application/json')
281 it('Should success with the correct parameters', function (done
) {
284 .set('Authorization', 'Bearer ' + userAccessToken
)
285 .set('Accept', 'application/json')
290 describe('When removing an user', function () {
291 it('Should fail with an incorrect id', function (done
) {
293 .delete(path
+ 'bla-bla')
294 .set('Authorization', 'Bearer ' + server
.accessToken
)
298 it('Should fail with the root user', function (done
) {
300 .delete(path
+ rootId
)
301 .set('Authorization', 'Bearer ' + server
.accessToken
)
305 it('Should return 404 with a non existing id', function (done
) {
308 .set('Authorization', 'Bearer ' + server
.accessToken
)
313 after(function (done
) {
314 process
.kill(-server
.app
.pid
)
316 // Keep the logs if the test failed
318 serversUtils
.flushTests(done
)