]>
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')
13 describe('Test users API validators', function () {
14 const path
= '/api/v1/users/'
18 let userAccessToken
= null
20 // ---------------------------------------------------------------
22 before(function (done
) {
27 serversUtils
.flushTests(next
)
30 serversUtils
.runServer(1, function (server1
) {
37 loginUtils
.loginAndGetAccessToken(server
, function (err
, token
) {
39 server
.accessToken
= token
45 const username
= 'user1'
46 const password
= 'my super password'
48 usersUtils
.createUser(server
.url
, server
.accessToken
, username
, password
, next
)
53 password: 'my super password'
56 loginUtils
.getUserAccessToken(server
, user
, function (err
, accessToken
) {
59 userAccessToken
= accessToken
67 describe('When listing users', function () {
68 it('Should fail with a bad start pagination', function (done
) {
71 .query({ start: 'hello' })
72 .set('Accept', 'application/json')
76 it('Should fail with a bad count pagination', function (done
) {
79 .query({ count: 'hello' })
80 .set('Accept', 'application/json')
84 it('Should fail with an incorrect sort', function (done
) {
87 .query({ sort: 'hello' })
88 .set('Accept', 'application/json')
93 describe('When adding a new user', function () {
94 it('Should fail with a too small username', function (done
) {
97 email: 'test@example.com',
98 password: 'mysuperpassword'
101 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
104 it('Should fail with a too long username', function (done
) {
106 username: 'mysuperusernamewhichisverylong',
107 email: 'test@example.com',
108 password: 'mysuperpassword'
111 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
114 it('Should fail with an incorrect username', function (done
) {
116 username: 'my username',
117 email: 'test@example.com',
118 password: 'mysuperpassword'
121 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
124 it('Should fail with a missing email', function (done
) {
127 password: 'mysuperpassword'
130 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
133 it('Should fail with an invalid email', function (done
) {
135 username: 'mysuperusernamewhichisverylong',
136 email: 'testexample.com',
137 password: 'mysuperpassword'
140 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
143 it('Should fail with a too small password', function (done
) {
145 username: 'myusername',
146 email: 'test@example.com',
150 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
153 it('Should fail with a too long password', function (done
) {
155 username: 'myusername',
156 email: 'test@example.com',
157 password: 'my super long password which is very very very very very very very very very very very very very very' +
158 'very very very very very very very very very very very very very very very veryv very very very very' +
159 'very very very very very very very very very very very very very very very very very very very very long'
162 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
)
165 it('Should fail with an non authenticated user', function (done
) {
167 username: 'myusername',
168 email: 'test@example.com',
169 password: 'my super password'
172 requestsUtils
.makePostBodyRequest(server
.url
, path
, 'super token', data
, done
, 401)
175 it('Should fail if we add a user with the same username', function (done
) {
178 email: 'test@example.com',
179 password: 'my super password'
182 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
, 409)
185 it('Should fail if we add a user with the same email', function (done
) {
187 username: 'myusername',
188 email: 'user1@example.com',
189 password: 'my super password'
192 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
, 409)
195 it('Should succeed with the correct params', function (done
) {
198 email: 'test@example.com',
199 password: 'my super password'
202 requestsUtils
.makePostBodyRequest(server
.url
, path
, server
.accessToken
, data
, done
, 204)
205 it('Should fail with a non admin user', function (done
) {
208 email: 'test@example.com',
209 password: 'my super password'
212 loginUtils
.loginAndGetAccessToken(server
, function (err
, accessToken
) {
215 userAccessToken
= accessToken
219 email: 'test@example.com',
220 password: 'my super password'
223 requestsUtils
.makePostBodyRequest(server
.url
, path
, userAccessToken
, data
, done
, 403)
228 describe('When updating a user', function () {
229 before(function (done
) {
230 usersUtils
.getUsersList(server
.url
, function (err
, res
) {
233 userId
= res
.body
.data
[1].id
234 rootId
= res
.body
.data
[2].id
239 it('Should fail with a too small password', function (done
) {
244 requestsUtils
.makePutBodyRequest(server
.url
, path
+ userId
, userAccessToken
, data
, done
)
247 it('Should fail with a too long password', function (done
) {
249 password: 'my super long password which is very very very very very very very very very very very very very very' +
250 'very very very very very very very very very very very very very very very veryv very very very very' +
251 'very very very very very very very very very very very very very very very very very very very very long'
254 requestsUtils
.makePutBodyRequest(server
.url
, path
+ userId
, userAccessToken
, data
, done
)
257 it('Should fail with an non authenticated user', function (done
) {
259 password: 'my super password'
262 requestsUtils
.makePutBodyRequest(server
.url
, path
+ userId
, 'super token', data
, done
, 401)
265 it('Should succeed with the correct params', function (done
) {
267 password: 'my super password'
270 requestsUtils
.makePutBodyRequest(server
.url
, path
+ userId
, userAccessToken
, data
, done
, 204)
274 describe('When getting my information', function () {
275 it('Should fail with a non authenticated user', function (done
) {
278 .set('Authorization', 'Bearer faketoken')
279 .set('Accept', 'application/json')
283 it('Should success with the correct parameters', function (done
) {
286 .set('Authorization', 'Bearer ' + userAccessToken
)
287 .set('Accept', 'application/json')
292 describe('When removing an user', function () {
293 it('Should fail with an incorrect id', function (done
) {
295 .delete(path
+ 'bla-bla')
296 .set('Authorization', 'Bearer ' + server
.accessToken
)
300 it('Should fail with the root user', function (done
) {
302 .delete(path
+ rootId
)
303 .set('Authorization', 'Bearer ' + server
.accessToken
)
307 it('Should return 404 with a non existing id', function (done
) {
310 .set('Authorization', 'Bearer ' + server
.accessToken
)
315 after(function (done
) {
316 process
.kill(-server
.app
.pid
)
318 // Keep the logs if the test failed
320 serversUtils
.flushTests(done
)