diff options
Diffstat (limited to 'server/tests/api/users')
-rw-r--r-- | server/tests/api/users/blocklist.ts | 259 | ||||
-rw-r--r-- | server/tests/api/users/user-subscriptions.ts | 15 | ||||
-rw-r--r-- | server/tests/api/users/users-multiple-servers.ts | 11 | ||||
-rw-r--r-- | server/tests/api/users/users-verification.ts | 2 | ||||
-rw-r--r-- | server/tests/api/users/users.ts | 247 |
5 files changed, 340 insertions, 194 deletions
diff --git a/server/tests/api/users/blocklist.ts b/server/tests/api/users/blocklist.ts index 05e58017a..21b9ae4f8 100644 --- a/server/tests/api/users/blocklist.ts +++ b/server/tests/api/users/blocklist.ts | |||
@@ -1,21 +1,20 @@ | |||
1 | /* tslint:disable:no-unused-expression */ | 1 | /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ |
2 | 2 | ||
3 | import * as chai from 'chai' | 3 | import * as chai from 'chai' |
4 | import 'mocha' | 4 | import 'mocha' |
5 | import { AccountBlock, ServerBlock, UserNotificationType, Video } from '../../../../shared/index' | 5 | import { AccountBlock, ServerBlock, Video } from '../../../../shared/index' |
6 | import { | 6 | import { |
7 | cleanupTests, | 7 | cleanupTests, |
8 | createUser, deleteVideoComment, | 8 | createUser, |
9 | deleteVideoComment, | ||
9 | doubleFollow, | 10 | doubleFollow, |
10 | flushAndRunMultipleServers, | 11 | flushAndRunMultipleServers, |
11 | flushTests, | ||
12 | killallServers, | ||
13 | ServerInfo, | 12 | ServerInfo, |
14 | uploadVideo, | 13 | uploadVideo, |
15 | userLogin | 14 | userLogin |
16 | } from '../../../../shared/extra-utils/index' | 15 | } from '../../../../shared/extra-utils/index' |
17 | import { setAccessTokensToServers } from '../../../../shared/extra-utils/users/login' | 16 | import { setAccessTokensToServers } from '../../../../shared/extra-utils/users/login' |
18 | import { getVideosListWithToken, getVideosList } from '../../../../shared/extra-utils/videos/videos' | 17 | import { getVideosList, getVideosListWithToken } from '../../../../shared/extra-utils/videos/videos' |
19 | import { | 18 | import { |
20 | addVideoCommentReply, | 19 | addVideoCommentReply, |
21 | addVideoCommentThread, | 20 | addVideoCommentThread, |
@@ -79,7 +78,7 @@ async function checkCommentNotification ( | |||
79 | const resComment = await addVideoCommentThread(comment.server.url, comment.token, comment.videoUUID, comment.text) | 78 | const resComment = await addVideoCommentThread(comment.server.url, comment.token, comment.videoUUID, comment.text) |
80 | const threadId = resComment.body.comment.id | 79 | const threadId = resComment.body.comment.id |
81 | 80 | ||
82 | await waitJobs([ mainServer, comment.server]) | 81 | await waitJobs([ mainServer, comment.server ]) |
83 | 82 | ||
84 | const res = await getUserNotifications(mainServer.url, mainServer.accessToken, 0, 30) | 83 | const res = await getUserNotifications(mainServer.url, mainServer.accessToken, 0, 30) |
85 | const commentNotifications = res.body.data | 84 | const commentNotifications = res.body.data |
@@ -90,7 +89,7 @@ async function checkCommentNotification ( | |||
90 | 89 | ||
91 | await deleteVideoComment(comment.server.url, comment.token, comment.videoUUID, threadId) | 90 | await deleteVideoComment(comment.server.url, comment.token, comment.videoUUID, threadId) |
92 | 91 | ||
93 | await waitJobs([ mainServer, comment.server]) | 92 | await waitJobs([ mainServer, comment.server ]) |
94 | } | 93 | } |
95 | 94 | ||
96 | describe('Test blocklist', function () { | 95 | describe('Test blocklist', function () { |
@@ -109,7 +108,7 @@ describe('Test blocklist', function () { | |||
109 | 108 | ||
110 | { | 109 | { |
111 | const user = { username: 'user1', password: 'password' } | 110 | const user = { username: 'user1', password: 'password' } |
112 | await createUser({ url: servers[ 0 ].url, accessToken: servers[ 0 ].accessToken, username: user.username, password: user.password }) | 111 | await createUser({ url: servers[0].url, accessToken: servers[0].accessToken, username: user.username, password: user.password }) |
113 | 112 | ||
114 | userToken1 = await userLogin(servers[0], user) | 113 | userToken1 = await userLogin(servers[0], user) |
115 | await uploadVideo(servers[0].url, userToken1, { name: 'video user 1' }) | 114 | await uploadVideo(servers[0].url, userToken1, { name: 'video user 1' }) |
@@ -117,14 +116,14 @@ describe('Test blocklist', function () { | |||
117 | 116 | ||
118 | { | 117 | { |
119 | const user = { username: 'moderator', password: 'password' } | 118 | const user = { username: 'moderator', password: 'password' } |
120 | await createUser({ url: servers[ 0 ].url, accessToken: servers[ 0 ].accessToken, username: user.username, password: user.password }) | 119 | await createUser({ url: servers[0].url, accessToken: servers[0].accessToken, username: user.username, password: user.password }) |
121 | 120 | ||
122 | userModeratorToken = await userLogin(servers[0], user) | 121 | userModeratorToken = await userLogin(servers[0], user) |
123 | } | 122 | } |
124 | 123 | ||
125 | { | 124 | { |
126 | const user = { username: 'user2', password: 'password' } | 125 | const user = { username: 'user2', password: 'password' } |
127 | await createUser({ url: servers[ 1 ].url, accessToken: servers[ 1 ].accessToken, username: user.username, password: user.password }) | 126 | await createUser({ url: servers[1].url, accessToken: servers[1].accessToken, username: user.username, password: user.password }) |
128 | 127 | ||
129 | userToken2 = await userLogin(servers[1], user) | 128 | userToken2 = await userLogin(servers[1], user) |
130 | await uploadVideo(servers[1].url, userToken2, { name: 'video user 2' }) | 129 | await uploadVideo(servers[1].url, userToken2, { name: 'video user 2' }) |
@@ -143,14 +142,14 @@ describe('Test blocklist', function () { | |||
143 | await doubleFollow(servers[0], servers[1]) | 142 | await doubleFollow(servers[0], servers[1]) |
144 | 143 | ||
145 | { | 144 | { |
146 | const resComment = await addVideoCommentThread(servers[ 0 ].url, servers[ 0 ].accessToken, videoUUID1, 'comment root 1') | 145 | const resComment = await addVideoCommentThread(servers[0].url, servers[0].accessToken, videoUUID1, 'comment root 1') |
147 | const resReply = await addVideoCommentReply(servers[ 0 ].url, userToken1, videoUUID1, resComment.body.comment.id, 'comment user 1') | 146 | const resReply = await addVideoCommentReply(servers[0].url, userToken1, videoUUID1, resComment.body.comment.id, 'comment user 1') |
148 | await addVideoCommentReply(servers[ 0 ].url, servers[ 0 ].accessToken, videoUUID1, resReply.body.comment.id, 'comment root 1') | 147 | await addVideoCommentReply(servers[0].url, servers[0].accessToken, videoUUID1, resReply.body.comment.id, 'comment root 1') |
149 | } | 148 | } |
150 | 149 | ||
151 | { | 150 | { |
152 | const resComment = await addVideoCommentThread(servers[ 0 ].url, userToken1, videoUUID1, 'comment user 1') | 151 | const resComment = await addVideoCommentThread(servers[0].url, userToken1, videoUUID1, 'comment user 1') |
153 | await addVideoCommentReply(servers[ 0 ].url, servers[ 0 ].accessToken, videoUUID1, resComment.body.comment.id, 'comment root 1') | 152 | await addVideoCommentReply(servers[0].url, servers[0].accessToken, videoUUID1, resComment.body.comment.id, 'comment root 1') |
154 | } | 153 | } |
155 | 154 | ||
156 | await waitJobs(servers) | 155 | await waitJobs(servers) |
@@ -160,19 +159,19 @@ describe('Test blocklist', function () { | |||
160 | 159 | ||
161 | describe('When managing account blocklist', function () { | 160 | describe('When managing account blocklist', function () { |
162 | it('Should list all videos', function () { | 161 | it('Should list all videos', function () { |
163 | return checkAllVideos(servers[ 0 ].url, servers[ 0 ].accessToken) | 162 | return checkAllVideos(servers[0].url, servers[0].accessToken) |
164 | }) | 163 | }) |
165 | 164 | ||
166 | it('Should list the comments', function () { | 165 | it('Should list the comments', function () { |
167 | return checkAllComments(servers[ 0 ].url, servers[ 0 ].accessToken, videoUUID1) | 166 | return checkAllComments(servers[0].url, servers[0].accessToken, videoUUID1) |
168 | }) | 167 | }) |
169 | 168 | ||
170 | it('Should block a remote account', async function () { | 169 | it('Should block a remote account', async function () { |
171 | await addAccountToAccountBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'user2@localhost:' + servers[1].port) | 170 | await addAccountToAccountBlocklist(servers[0].url, servers[0].accessToken, 'user2@localhost:' + servers[1].port) |
172 | }) | 171 | }) |
173 | 172 | ||
174 | it('Should hide its videos', async function () { | 173 | it('Should hide its videos', async function () { |
175 | const res = await getVideosListWithToken(servers[ 0 ].url, servers[ 0 ].accessToken) | 174 | const res = await getVideosListWithToken(servers[0].url, servers[0].accessToken) |
176 | 175 | ||
177 | const videos: Video[] = res.body.data | 176 | const videos: Video[] = res.body.data |
178 | expect(videos).to.have.lengthOf(3) | 177 | expect(videos).to.have.lengthOf(3) |
@@ -182,11 +181,11 @@ describe('Test blocklist', function () { | |||
182 | }) | 181 | }) |
183 | 182 | ||
184 | it('Should block a local account', async function () { | 183 | it('Should block a local account', async function () { |
185 | await addAccountToAccountBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'user1') | 184 | await addAccountToAccountBlocklist(servers[0].url, servers[0].accessToken, 'user1') |
186 | }) | 185 | }) |
187 | 186 | ||
188 | it('Should hide its videos', async function () { | 187 | it('Should hide its videos', async function () { |
189 | const res = await getVideosListWithToken(servers[ 0 ].url, servers[ 0 ].accessToken) | 188 | const res = await getVideosListWithToken(servers[0].url, servers[0].accessToken) |
190 | 189 | ||
191 | const videos: Video[] = res.body.data | 190 | const videos: Video[] = res.body.data |
192 | expect(videos).to.have.lengthOf(2) | 191 | expect(videos).to.have.lengthOf(2) |
@@ -196,17 +195,17 @@ describe('Test blocklist', function () { | |||
196 | }) | 195 | }) |
197 | 196 | ||
198 | it('Should hide its comments', async function () { | 197 | it('Should hide its comments', async function () { |
199 | const resThreads = await getVideoCommentThreads(servers[ 0 ].url, videoUUID1, 0, 5, '-createdAt', servers[ 0 ].accessToken) | 198 | const resThreads = await getVideoCommentThreads(servers[0].url, videoUUID1, 0, 5, '-createdAt', servers[0].accessToken) |
200 | 199 | ||
201 | const threads: VideoComment[] = resThreads.body.data | 200 | const threads: VideoComment[] = resThreads.body.data |
202 | expect(threads).to.have.lengthOf(1) | 201 | expect(threads).to.have.lengthOf(1) |
203 | expect(threads[ 0 ].totalReplies).to.equal(0) | 202 | expect(threads[0].totalReplies).to.equal(0) |
204 | 203 | ||
205 | const t = threads.find(t => t.text === 'comment user 1') | 204 | const t = threads.find(t => t.text === 'comment user 1') |
206 | expect(t).to.be.undefined | 205 | expect(t).to.be.undefined |
207 | 206 | ||
208 | for (const thread of threads) { | 207 | for (const thread of threads) { |
209 | const res = await getVideoThreadComments(servers[ 0 ].url, videoUUID1, thread.id, servers[ 0 ].accessToken) | 208 | const res = await getVideoThreadComments(servers[0].url, videoUUID1, thread.id, servers[0].accessToken) |
210 | 209 | ||
211 | const tree: VideoCommentThreadTree = res.body | 210 | const tree: VideoCommentThreadTree = res.body |
212 | expect(tree.children).to.have.lengthOf(0) | 211 | expect(tree.children).to.have.lengthOf(0) |
@@ -217,37 +216,37 @@ describe('Test blocklist', function () { | |||
217 | this.timeout(20000) | 216 | this.timeout(20000) |
218 | 217 | ||
219 | { | 218 | { |
220 | const comment = { server: servers[ 0 ], token: userToken1, videoUUID: videoUUID1, text: 'hidden comment' } | 219 | const comment = { server: servers[0], token: userToken1, videoUUID: videoUUID1, text: 'hidden comment' } |
221 | await checkCommentNotification(servers[ 0 ], comment, 'absence') | 220 | await checkCommentNotification(servers[0], comment, 'absence') |
222 | } | 221 | } |
223 | 222 | ||
224 | { | 223 | { |
225 | const comment = { | 224 | const comment = { |
226 | server: servers[ 0 ], | 225 | server: servers[0], |
227 | token: userToken1, | 226 | token: userToken1, |
228 | videoUUID: videoUUID2, | 227 | videoUUID: videoUUID2, |
229 | text: 'hello @root@localhost:' + servers[ 0 ].port | 228 | text: 'hello @root@localhost:' + servers[0].port |
230 | } | 229 | } |
231 | await checkCommentNotification(servers[ 0 ], comment, 'absence') | 230 | await checkCommentNotification(servers[0], comment, 'absence') |
232 | } | 231 | } |
233 | }) | 232 | }) |
234 | 233 | ||
235 | it('Should list all the videos with another user', async function () { | 234 | it('Should list all the videos with another user', async function () { |
236 | return checkAllVideos(servers[ 0 ].url, userToken1) | 235 | return checkAllVideos(servers[0].url, userToken1) |
237 | }) | 236 | }) |
238 | 237 | ||
239 | it('Should list all the comments with another user', async function () { | 238 | it('Should list all the comments with another user', async function () { |
240 | return checkAllComments(servers[ 0 ].url, userToken1, videoUUID1) | 239 | return checkAllComments(servers[0].url, userToken1, videoUUID1) |
241 | }) | 240 | }) |
242 | 241 | ||
243 | it('Should list blocked accounts', async function () { | 242 | it('Should list blocked accounts', async function () { |
244 | { | 243 | { |
245 | const res = await getAccountBlocklistByAccount(servers[ 0 ].url, servers[ 0 ].accessToken, 0, 1, 'createdAt') | 244 | const res = await getAccountBlocklistByAccount(servers[0].url, servers[0].accessToken, 0, 1, 'createdAt') |
246 | const blocks: AccountBlock[] = res.body.data | 245 | const blocks: AccountBlock[] = res.body.data |
247 | 246 | ||
248 | expect(res.body.total).to.equal(2) | 247 | expect(res.body.total).to.equal(2) |
249 | 248 | ||
250 | const block = blocks[ 0 ] | 249 | const block = blocks[0] |
251 | expect(block.byAccount.displayName).to.equal('root') | 250 | expect(block.byAccount.displayName).to.equal('root') |
252 | expect(block.byAccount.name).to.equal('root') | 251 | expect(block.byAccount.name).to.equal('root') |
253 | expect(block.blockedAccount.displayName).to.equal('user2') | 252 | expect(block.blockedAccount.displayName).to.equal('user2') |
@@ -256,12 +255,12 @@ describe('Test blocklist', function () { | |||
256 | } | 255 | } |
257 | 256 | ||
258 | { | 257 | { |
259 | const res = await getAccountBlocklistByAccount(servers[ 0 ].url, servers[ 0 ].accessToken, 1, 2, 'createdAt') | 258 | const res = await getAccountBlocklistByAccount(servers[0].url, servers[0].accessToken, 1, 2, 'createdAt') |
260 | const blocks: AccountBlock[] = res.body.data | 259 | const blocks: AccountBlock[] = res.body.data |
261 | 260 | ||
262 | expect(res.body.total).to.equal(2) | 261 | expect(res.body.total).to.equal(2) |
263 | 262 | ||
264 | const block = blocks[ 0 ] | 263 | const block = blocks[0] |
265 | expect(block.byAccount.displayName).to.equal('root') | 264 | expect(block.byAccount.displayName).to.equal('root') |
266 | expect(block.byAccount.name).to.equal('root') | 265 | expect(block.byAccount.name).to.equal('root') |
267 | expect(block.blockedAccount.displayName).to.equal('user1') | 266 | expect(block.blockedAccount.displayName).to.equal('user1') |
@@ -271,11 +270,11 @@ describe('Test blocklist', function () { | |||
271 | }) | 270 | }) |
272 | 271 | ||
273 | it('Should unblock the remote account', async function () { | 272 | it('Should unblock the remote account', async function () { |
274 | await removeAccountFromAccountBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'user2@localhost:' + servers[1].port) | 273 | await removeAccountFromAccountBlocklist(servers[0].url, servers[0].accessToken, 'user2@localhost:' + servers[1].port) |
275 | }) | 274 | }) |
276 | 275 | ||
277 | it('Should display its videos', async function () { | 276 | it('Should display its videos', async function () { |
278 | const res = await getVideosListWithToken(servers[ 0 ].url, servers[ 0 ].accessToken) | 277 | const res = await getVideosListWithToken(servers[0].url, servers[0].accessToken) |
279 | 278 | ||
280 | const videos: Video[] = res.body.data | 279 | const videos: Video[] = res.body.data |
281 | expect(videos).to.have.lengthOf(3) | 280 | expect(videos).to.have.lengthOf(3) |
@@ -285,48 +284,48 @@ describe('Test blocklist', function () { | |||
285 | }) | 284 | }) |
286 | 285 | ||
287 | it('Should unblock the local account', async function () { | 286 | it('Should unblock the local account', async function () { |
288 | await removeAccountFromAccountBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'user1') | 287 | await removeAccountFromAccountBlocklist(servers[0].url, servers[0].accessToken, 'user1') |
289 | }) | 288 | }) |
290 | 289 | ||
291 | it('Should display its comments', function () { | 290 | it('Should display its comments', function () { |
292 | return checkAllComments(servers[ 0 ].url, servers[ 0 ].accessToken, videoUUID1) | 291 | return checkAllComments(servers[0].url, servers[0].accessToken, videoUUID1) |
293 | }) | 292 | }) |
294 | 293 | ||
295 | it('Should have a notification from a non blocked account', async function () { | 294 | it('Should have a notification from a non blocked account', async function () { |
296 | this.timeout(20000) | 295 | this.timeout(20000) |
297 | 296 | ||
298 | { | 297 | { |
299 | const comment = { server: servers[ 1 ], token: userToken2, videoUUID: videoUUID1, text: 'displayed comment' } | 298 | const comment = { server: servers[1], token: userToken2, videoUUID: videoUUID1, text: 'displayed comment' } |
300 | await checkCommentNotification(servers[ 0 ], comment, 'presence') | 299 | await checkCommentNotification(servers[0], comment, 'presence') |
301 | } | 300 | } |
302 | 301 | ||
303 | { | 302 | { |
304 | const comment = { | 303 | const comment = { |
305 | server: servers[ 0 ], | 304 | server: servers[0], |
306 | token: userToken1, | 305 | token: userToken1, |
307 | videoUUID: videoUUID2, | 306 | videoUUID: videoUUID2, |
308 | text: 'hello @root@localhost:' + servers[ 0 ].port | 307 | text: 'hello @root@localhost:' + servers[0].port |
309 | } | 308 | } |
310 | await checkCommentNotification(servers[ 0 ], comment, 'presence') | 309 | await checkCommentNotification(servers[0], comment, 'presence') |
311 | } | 310 | } |
312 | }) | 311 | }) |
313 | }) | 312 | }) |
314 | 313 | ||
315 | describe('When managing server blocklist', function () { | 314 | describe('When managing server blocklist', function () { |
316 | it('Should list all videos', function () { | 315 | it('Should list all videos', function () { |
317 | return checkAllVideos(servers[ 0 ].url, servers[ 0 ].accessToken) | 316 | return checkAllVideos(servers[0].url, servers[0].accessToken) |
318 | }) | 317 | }) |
319 | 318 | ||
320 | it('Should list the comments', function () { | 319 | it('Should list the comments', function () { |
321 | return checkAllComments(servers[ 0 ].url, servers[ 0 ].accessToken, videoUUID1) | 320 | return checkAllComments(servers[0].url, servers[0].accessToken, videoUUID1) |
322 | }) | 321 | }) |
323 | 322 | ||
324 | it('Should block a remote server', async function () { | 323 | it('Should block a remote server', async function () { |
325 | await addServerToAccountBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'localhost:' + servers[1].port) | 324 | await addServerToAccountBlocklist(servers[0].url, servers[0].accessToken, 'localhost:' + servers[1].port) |
326 | }) | 325 | }) |
327 | 326 | ||
328 | it('Should hide its videos', async function () { | 327 | it('Should hide its videos', async function () { |
329 | const res = await getVideosListWithToken(servers[ 0 ].url, servers[ 0 ].accessToken) | 328 | const res = await getVideosListWithToken(servers[0].url, servers[0].accessToken) |
330 | 329 | ||
331 | const videos: Video[] = res.body.data | 330 | const videos: Video[] = res.body.data |
332 | expect(videos).to.have.lengthOf(2) | 331 | expect(videos).to.have.lengthOf(2) |
@@ -339,81 +338,81 @@ describe('Test blocklist', function () { | |||
339 | }) | 338 | }) |
340 | 339 | ||
341 | it('Should list all the videos with another user', async function () { | 340 | it('Should list all the videos with another user', async function () { |
342 | return checkAllVideos(servers[ 0 ].url, userToken1) | 341 | return checkAllVideos(servers[0].url, userToken1) |
343 | }) | 342 | }) |
344 | 343 | ||
345 | it('Should hide its comments', async function () { | 344 | it('Should hide its comments', async function () { |
346 | this.timeout(10000) | 345 | this.timeout(10000) |
347 | 346 | ||
348 | const resThreads = await addVideoCommentThread(servers[ 1 ].url, userToken2, videoUUID1, 'hidden comment 2') | 347 | const resThreads = await addVideoCommentThread(servers[1].url, userToken2, videoUUID1, 'hidden comment 2') |
349 | const threadId = resThreads.body.comment.id | 348 | const threadId = resThreads.body.comment.id |
350 | 349 | ||
351 | await waitJobs(servers) | 350 | await waitJobs(servers) |
352 | 351 | ||
353 | await checkAllComments(servers[ 0 ].url, servers[ 0 ].accessToken, videoUUID1) | 352 | await checkAllComments(servers[0].url, servers[0].accessToken, videoUUID1) |
354 | 353 | ||
355 | await deleteVideoComment(servers[ 1 ].url, userToken2, videoUUID1, threadId) | 354 | await deleteVideoComment(servers[1].url, userToken2, videoUUID1, threadId) |
356 | }) | 355 | }) |
357 | 356 | ||
358 | it('Should not have notifications from blocked server', async function () { | 357 | it('Should not have notifications from blocked server', async function () { |
359 | this.timeout(20000) | 358 | this.timeout(20000) |
360 | 359 | ||
361 | { | 360 | { |
362 | const comment = { server: servers[ 1 ], token: userToken2, videoUUID: videoUUID1, text: 'hidden comment' } | 361 | const comment = { server: servers[1], token: userToken2, videoUUID: videoUUID1, text: 'hidden comment' } |
363 | await checkCommentNotification(servers[ 0 ], comment, 'absence') | 362 | await checkCommentNotification(servers[0], comment, 'absence') |
364 | } | 363 | } |
365 | 364 | ||
366 | { | 365 | { |
367 | const comment = { | 366 | const comment = { |
368 | server: servers[ 1 ], | 367 | server: servers[1], |
369 | token: userToken2, | 368 | token: userToken2, |
370 | videoUUID: videoUUID1, | 369 | videoUUID: videoUUID1, |
371 | text: 'hello @root@localhost:' + servers[ 0 ].port | 370 | text: 'hello @root@localhost:' + servers[0].port |
372 | } | 371 | } |
373 | await checkCommentNotification(servers[ 0 ], comment, 'absence') | 372 | await checkCommentNotification(servers[0], comment, 'absence') |
374 | } | 373 | } |
375 | }) | 374 | }) |
376 | 375 | ||
377 | it('Should list blocked servers', async function () { | 376 | it('Should list blocked servers', async function () { |
378 | const res = await getServerBlocklistByAccount(servers[ 0 ].url, servers[ 0 ].accessToken, 0, 1, 'createdAt') | 377 | const res = await getServerBlocklistByAccount(servers[0].url, servers[0].accessToken, 0, 1, 'createdAt') |
379 | const blocks: ServerBlock[] = res.body.data | 378 | const blocks: ServerBlock[] = res.body.data |
380 | 379 | ||
381 | expect(res.body.total).to.equal(1) | 380 | expect(res.body.total).to.equal(1) |
382 | 381 | ||
383 | const block = blocks[ 0 ] | 382 | const block = blocks[0] |
384 | expect(block.byAccount.displayName).to.equal('root') | 383 | expect(block.byAccount.displayName).to.equal('root') |
385 | expect(block.byAccount.name).to.equal('root') | 384 | expect(block.byAccount.name).to.equal('root') |
386 | expect(block.blockedServer.host).to.equal('localhost:' + servers[1].port) | 385 | expect(block.blockedServer.host).to.equal('localhost:' + servers[1].port) |
387 | }) | 386 | }) |
388 | 387 | ||
389 | it('Should unblock the remote server', async function () { | 388 | it('Should unblock the remote server', async function () { |
390 | await removeServerFromAccountBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'localhost:' + servers[1].port) | 389 | await removeServerFromAccountBlocklist(servers[0].url, servers[0].accessToken, 'localhost:' + servers[1].port) |
391 | }) | 390 | }) |
392 | 391 | ||
393 | it('Should display its videos', function () { | 392 | it('Should display its videos', function () { |
394 | return checkAllVideos(servers[ 0 ].url, servers[ 0 ].accessToken) | 393 | return checkAllVideos(servers[0].url, servers[0].accessToken) |
395 | }) | 394 | }) |
396 | 395 | ||
397 | it('Should display its comments', function () { | 396 | it('Should display its comments', function () { |
398 | return checkAllComments(servers[ 0 ].url, servers[ 0 ].accessToken, videoUUID1) | 397 | return checkAllComments(servers[0].url, servers[0].accessToken, videoUUID1) |
399 | }) | 398 | }) |
400 | 399 | ||
401 | it('Should have notification from unblocked server', async function () { | 400 | it('Should have notification from unblocked server', async function () { |
402 | this.timeout(20000) | 401 | this.timeout(20000) |
403 | 402 | ||
404 | { | 403 | { |
405 | const comment = { server: servers[ 1 ], token: userToken2, videoUUID: videoUUID1, text: 'displayed comment' } | 404 | const comment = { server: servers[1], token: userToken2, videoUUID: videoUUID1, text: 'displayed comment' } |
406 | await checkCommentNotification(servers[ 0 ], comment, 'presence') | 405 | await checkCommentNotification(servers[0], comment, 'presence') |
407 | } | 406 | } |
408 | 407 | ||
409 | { | 408 | { |
410 | const comment = { | 409 | const comment = { |
411 | server: servers[ 1 ], | 410 | server: servers[1], |
412 | token: userToken2, | 411 | token: userToken2, |
413 | videoUUID: videoUUID1, | 412 | videoUUID: videoUUID1, |
414 | text: 'hello @root@localhost:' + servers[ 0 ].port | 413 | text: 'hello @root@localhost:' + servers[0].port |
415 | } | 414 | } |
416 | await checkCommentNotification(servers[ 0 ], comment, 'presence') | 415 | await checkCommentNotification(servers[0], comment, 'presence') |
417 | } | 416 | } |
418 | }) | 417 | }) |
419 | }) | 418 | }) |
@@ -423,24 +422,24 @@ describe('Test blocklist', function () { | |||
423 | 422 | ||
424 | describe('When managing account blocklist', function () { | 423 | describe('When managing account blocklist', function () { |
425 | it('Should list all videos', async function () { | 424 | it('Should list all videos', async function () { |
426 | for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) { | 425 | for (const token of [ userModeratorToken, servers[0].accessToken ]) { |
427 | await checkAllVideos(servers[ 0 ].url, token) | 426 | await checkAllVideos(servers[0].url, token) |
428 | } | 427 | } |
429 | }) | 428 | }) |
430 | 429 | ||
431 | it('Should list the comments', async function () { | 430 | it('Should list the comments', async function () { |
432 | for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) { | 431 | for (const token of [ userModeratorToken, servers[0].accessToken ]) { |
433 | await checkAllComments(servers[ 0 ].url, token, videoUUID1) | 432 | await checkAllComments(servers[0].url, token, videoUUID1) |
434 | } | 433 | } |
435 | }) | 434 | }) |
436 | 435 | ||
437 | it('Should block a remote account', async function () { | 436 | it('Should block a remote account', async function () { |
438 | await addAccountToServerBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'user2@localhost:' + servers[1].port) | 437 | await addAccountToServerBlocklist(servers[0].url, servers[0].accessToken, 'user2@localhost:' + servers[1].port) |
439 | }) | 438 | }) |
440 | 439 | ||
441 | it('Should hide its videos', async function () { | 440 | it('Should hide its videos', async function () { |
442 | for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) { | 441 | for (const token of [ userModeratorToken, servers[0].accessToken ]) { |
443 | const res = await getVideosListWithToken(servers[ 0 ].url, token) | 442 | const res = await getVideosListWithToken(servers[0].url, token) |
444 | 443 | ||
445 | const videos: Video[] = res.body.data | 444 | const videos: Video[] = res.body.data |
446 | expect(videos).to.have.lengthOf(3) | 445 | expect(videos).to.have.lengthOf(3) |
@@ -451,12 +450,12 @@ describe('Test blocklist', function () { | |||
451 | }) | 450 | }) |
452 | 451 | ||
453 | it('Should block a local account', async function () { | 452 | it('Should block a local account', async function () { |
454 | await addAccountToServerBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'user1') | 453 | await addAccountToServerBlocklist(servers[0].url, servers[0].accessToken, 'user1') |
455 | }) | 454 | }) |
456 | 455 | ||
457 | it('Should hide its videos', async function () { | 456 | it('Should hide its videos', async function () { |
458 | for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) { | 457 | for (const token of [ userModeratorToken, servers[0].accessToken ]) { |
459 | const res = await getVideosListWithToken(servers[ 0 ].url, token) | 458 | const res = await getVideosListWithToken(servers[0].url, token) |
460 | 459 | ||
461 | const videos: Video[] = res.body.data | 460 | const videos: Video[] = res.body.data |
462 | expect(videos).to.have.lengthOf(2) | 461 | expect(videos).to.have.lengthOf(2) |
@@ -467,18 +466,18 @@ describe('Test blocklist', function () { | |||
467 | }) | 466 | }) |
468 | 467 | ||
469 | it('Should hide its comments', async function () { | 468 | it('Should hide its comments', async function () { |
470 | for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) { | 469 | for (const token of [ userModeratorToken, servers[0].accessToken ]) { |
471 | const resThreads = await getVideoCommentThreads(servers[ 0 ].url, videoUUID1, 0, 5, '-createdAt', token) | 470 | const resThreads = await getVideoCommentThreads(servers[0].url, videoUUID1, 0, 5, '-createdAt', token) |
472 | 471 | ||
473 | const threads: VideoComment[] = resThreads.body.data | 472 | const threads: VideoComment[] = resThreads.body.data |
474 | expect(threads).to.have.lengthOf(1) | 473 | expect(threads).to.have.lengthOf(1) |
475 | expect(threads[ 0 ].totalReplies).to.equal(0) | 474 | expect(threads[0].totalReplies).to.equal(0) |
476 | 475 | ||
477 | const t = threads.find(t => t.text === 'comment user 1') | 476 | const t = threads.find(t => t.text === 'comment user 1') |
478 | expect(t).to.be.undefined | 477 | expect(t).to.be.undefined |
479 | 478 | ||
480 | for (const thread of threads) { | 479 | for (const thread of threads) { |
481 | const res = await getVideoThreadComments(servers[ 0 ].url, videoUUID1, thread.id, token) | 480 | const res = await getVideoThreadComments(servers[0].url, videoUUID1, thread.id, token) |
482 | 481 | ||
483 | const tree: VideoCommentThreadTree = res.body | 482 | const tree: VideoCommentThreadTree = res.body |
484 | expect(tree.children).to.have.lengthOf(0) | 483 | expect(tree.children).to.have.lengthOf(0) |
@@ -490,29 +489,29 @@ describe('Test blocklist', function () { | |||
490 | this.timeout(20000) | 489 | this.timeout(20000) |
491 | 490 | ||
492 | { | 491 | { |
493 | const comment = { server: servers[ 0 ], token: userToken1, videoUUID: videoUUID1, text: 'hidden comment' } | 492 | const comment = { server: servers[0], token: userToken1, videoUUID: videoUUID1, text: 'hidden comment' } |
494 | await checkCommentNotification(servers[ 0 ], comment, 'absence') | 493 | await checkCommentNotification(servers[0], comment, 'absence') |
495 | } | 494 | } |
496 | 495 | ||
497 | { | 496 | { |
498 | const comment = { | 497 | const comment = { |
499 | server: servers[ 1 ], | 498 | server: servers[1], |
500 | token: userToken2, | 499 | token: userToken2, |
501 | videoUUID: videoUUID1, | 500 | videoUUID: videoUUID1, |
502 | text: 'hello @root@localhost:' + servers[ 0 ].port | 501 | text: 'hello @root@localhost:' + servers[0].port |
503 | } | 502 | } |
504 | await checkCommentNotification(servers[ 0 ], comment, 'absence') | 503 | await checkCommentNotification(servers[0], comment, 'absence') |
505 | } | 504 | } |
506 | }) | 505 | }) |
507 | 506 | ||
508 | it('Should list blocked accounts', async function () { | 507 | it('Should list blocked accounts', async function () { |
509 | { | 508 | { |
510 | const res = await getAccountBlocklistByServer(servers[ 0 ].url, servers[ 0 ].accessToken, 0, 1, 'createdAt') | 509 | const res = await getAccountBlocklistByServer(servers[0].url, servers[0].accessToken, 0, 1, 'createdAt') |
511 | const blocks: AccountBlock[] = res.body.data | 510 | const blocks: AccountBlock[] = res.body.data |
512 | 511 | ||
513 | expect(res.body.total).to.equal(2) | 512 | expect(res.body.total).to.equal(2) |
514 | 513 | ||
515 | const block = blocks[ 0 ] | 514 | const block = blocks[0] |
516 | expect(block.byAccount.displayName).to.equal('peertube') | 515 | expect(block.byAccount.displayName).to.equal('peertube') |
517 | expect(block.byAccount.name).to.equal('peertube') | 516 | expect(block.byAccount.name).to.equal('peertube') |
518 | expect(block.blockedAccount.displayName).to.equal('user2') | 517 | expect(block.blockedAccount.displayName).to.equal('user2') |
@@ -521,12 +520,12 @@ describe('Test blocklist', function () { | |||
521 | } | 520 | } |
522 | 521 | ||
523 | { | 522 | { |
524 | const res = await getAccountBlocklistByServer(servers[ 0 ].url, servers[ 0 ].accessToken, 1, 2, 'createdAt') | 523 | const res = await getAccountBlocklistByServer(servers[0].url, servers[0].accessToken, 1, 2, 'createdAt') |
525 | const blocks: AccountBlock[] = res.body.data | 524 | const blocks: AccountBlock[] = res.body.data |
526 | 525 | ||
527 | expect(res.body.total).to.equal(2) | 526 | expect(res.body.total).to.equal(2) |
528 | 527 | ||
529 | const block = blocks[ 0 ] | 528 | const block = blocks[0] |
530 | expect(block.byAccount.displayName).to.equal('peertube') | 529 | expect(block.byAccount.displayName).to.equal('peertube') |
531 | expect(block.byAccount.name).to.equal('peertube') | 530 | expect(block.byAccount.name).to.equal('peertube') |
532 | expect(block.blockedAccount.displayName).to.equal('user1') | 531 | expect(block.blockedAccount.displayName).to.equal('user1') |
@@ -536,12 +535,12 @@ describe('Test blocklist', function () { | |||
536 | }) | 535 | }) |
537 | 536 | ||
538 | it('Should unblock the remote account', async function () { | 537 | it('Should unblock the remote account', async function () { |
539 | await removeAccountFromServerBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'user2@localhost:' + servers[1].port) | 538 | await removeAccountFromServerBlocklist(servers[0].url, servers[0].accessToken, 'user2@localhost:' + servers[1].port) |
540 | }) | 539 | }) |
541 | 540 | ||
542 | it('Should display its videos', async function () { | 541 | it('Should display its videos', async function () { |
543 | for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) { | 542 | for (const token of [ userModeratorToken, servers[0].accessToken ]) { |
544 | const res = await getVideosListWithToken(servers[ 0 ].url, token) | 543 | const res = await getVideosListWithToken(servers[0].url, token) |
545 | 544 | ||
546 | const videos: Video[] = res.body.data | 545 | const videos: Video[] = res.body.data |
547 | expect(videos).to.have.lengthOf(3) | 546 | expect(videos).to.have.lengthOf(3) |
@@ -552,12 +551,12 @@ describe('Test blocklist', function () { | |||
552 | }) | 551 | }) |
553 | 552 | ||
554 | it('Should unblock the local account', async function () { | 553 | it('Should unblock the local account', async function () { |
555 | await removeAccountFromServerBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'user1') | 554 | await removeAccountFromServerBlocklist(servers[0].url, servers[0].accessToken, 'user1') |
556 | }) | 555 | }) |
557 | 556 | ||
558 | it('Should display its comments', async function () { | 557 | it('Should display its comments', async function () { |
559 | for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) { | 558 | for (const token of [ userModeratorToken, servers[0].accessToken ]) { |
560 | await checkAllComments(servers[ 0 ].url, token, videoUUID1) | 559 | await checkAllComments(servers[0].url, token, videoUUID1) |
561 | } | 560 | } |
562 | }) | 561 | }) |
563 | 562 | ||
@@ -565,43 +564,43 @@ describe('Test blocklist', function () { | |||
565 | this.timeout(20000) | 564 | this.timeout(20000) |
566 | 565 | ||
567 | { | 566 | { |
568 | const comment = { server: servers[ 0 ], token: userToken1, videoUUID: videoUUID1, text: 'displayed comment' } | 567 | const comment = { server: servers[0], token: userToken1, videoUUID: videoUUID1, text: 'displayed comment' } |
569 | await checkCommentNotification(servers[ 0 ], comment, 'presence') | 568 | await checkCommentNotification(servers[0], comment, 'presence') |
570 | } | 569 | } |
571 | 570 | ||
572 | { | 571 | { |
573 | const comment = { | 572 | const comment = { |
574 | server: servers[ 1 ], | 573 | server: servers[1], |
575 | token: userToken2, | 574 | token: userToken2, |
576 | videoUUID: videoUUID1, | 575 | videoUUID: videoUUID1, |
577 | text: 'hello @root@localhost:' + servers[ 0 ].port | 576 | text: 'hello @root@localhost:' + servers[0].port |
578 | } | 577 | } |
579 | await checkCommentNotification(servers[ 0 ], comment, 'presence') | 578 | await checkCommentNotification(servers[0], comment, 'presence') |
580 | } | 579 | } |
581 | }) | 580 | }) |
582 | }) | 581 | }) |
583 | 582 | ||
584 | describe('When managing server blocklist', function () { | 583 | describe('When managing server blocklist', function () { |
585 | it('Should list all videos', async function () { | 584 | it('Should list all videos', async function () { |
586 | for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) { | 585 | for (const token of [ userModeratorToken, servers[0].accessToken ]) { |
587 | await checkAllVideos(servers[ 0 ].url, token) | 586 | await checkAllVideos(servers[0].url, token) |
588 | } | 587 | } |
589 | }) | 588 | }) |
590 | 589 | ||
591 | it('Should list the comments', async function () { | 590 | it('Should list the comments', async function () { |
592 | for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) { | 591 | for (const token of [ userModeratorToken, servers[0].accessToken ]) { |
593 | await checkAllComments(servers[ 0 ].url, token, videoUUID1) | 592 | await checkAllComments(servers[0].url, token, videoUUID1) |
594 | } | 593 | } |
595 | }) | 594 | }) |
596 | 595 | ||
597 | it('Should block a remote server', async function () { | 596 | it('Should block a remote server', async function () { |
598 | await addServerToServerBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'localhost:' + servers[1].port) | 597 | await addServerToServerBlocklist(servers[0].url, servers[0].accessToken, 'localhost:' + servers[1].port) |
599 | }) | 598 | }) |
600 | 599 | ||
601 | it('Should hide its videos', async function () { | 600 | it('Should hide its videos', async function () { |
602 | for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) { | 601 | for (const token of [ userModeratorToken, servers[0].accessToken ]) { |
603 | const res1 = await getVideosList(servers[ 0 ].url) | 602 | const res1 = await getVideosList(servers[0].url) |
604 | const res2 = await getVideosListWithToken(servers[ 0 ].url, token) | 603 | const res2 = await getVideosListWithToken(servers[0].url, token) |
605 | 604 | ||
606 | for (const res of [ res1, res2 ]) { | 605 | for (const res of [ res1, res2 ]) { |
607 | const videos: Video[] = res.body.data | 606 | const videos: Video[] = res.body.data |
@@ -619,60 +618,60 @@ describe('Test blocklist', function () { | |||
619 | it('Should hide its comments', async function () { | 618 | it('Should hide its comments', async function () { |
620 | this.timeout(10000) | 619 | this.timeout(10000) |
621 | 620 | ||
622 | const resThreads = await addVideoCommentThread(servers[ 1 ].url, userToken2, videoUUID1, 'hidden comment 2') | 621 | const resThreads = await addVideoCommentThread(servers[1].url, userToken2, videoUUID1, 'hidden comment 2') |
623 | const threadId = resThreads.body.comment.id | 622 | const threadId = resThreads.body.comment.id |
624 | 623 | ||
625 | await waitJobs(servers) | 624 | await waitJobs(servers) |
626 | 625 | ||
627 | await checkAllComments(servers[ 0 ].url, servers[ 0 ].accessToken, videoUUID1) | 626 | await checkAllComments(servers[0].url, servers[0].accessToken, videoUUID1) |
628 | 627 | ||
629 | await deleteVideoComment(servers[ 1 ].url, userToken2, videoUUID1, threadId) | 628 | await deleteVideoComment(servers[1].url, userToken2, videoUUID1, threadId) |
630 | }) | 629 | }) |
631 | 630 | ||
632 | it('Should not have notification from blocked instances by instance', async function () { | 631 | it('Should not have notification from blocked instances by instance', async function () { |
633 | this.timeout(20000) | 632 | this.timeout(20000) |
634 | 633 | ||
635 | { | 634 | { |
636 | const comment = { server: servers[ 1 ], token: userToken2, videoUUID: videoUUID1, text: 'hidden comment' } | 635 | const comment = { server: servers[1], token: userToken2, videoUUID: videoUUID1, text: 'hidden comment' } |
637 | await checkCommentNotification(servers[ 0 ], comment, 'absence') | 636 | await checkCommentNotification(servers[0], comment, 'absence') |
638 | } | 637 | } |
639 | 638 | ||
640 | { | 639 | { |
641 | const comment = { | 640 | const comment = { |
642 | server: servers[ 1 ], | 641 | server: servers[1], |
643 | token: userToken2, | 642 | token: userToken2, |
644 | videoUUID: videoUUID1, | 643 | videoUUID: videoUUID1, |
645 | text: 'hello @root@localhost:' + servers[ 0 ].port | 644 | text: 'hello @root@localhost:' + servers[0].port |
646 | } | 645 | } |
647 | await checkCommentNotification(servers[ 0 ], comment, 'absence') | 646 | await checkCommentNotification(servers[0], comment, 'absence') |
648 | } | 647 | } |
649 | }) | 648 | }) |
650 | 649 | ||
651 | it('Should list blocked servers', async function () { | 650 | it('Should list blocked servers', async function () { |
652 | const res = await getServerBlocklistByServer(servers[ 0 ].url, servers[ 0 ].accessToken, 0, 1, 'createdAt') | 651 | const res = await getServerBlocklistByServer(servers[0].url, servers[0].accessToken, 0, 1, 'createdAt') |
653 | const blocks: ServerBlock[] = res.body.data | 652 | const blocks: ServerBlock[] = res.body.data |
654 | 653 | ||
655 | expect(res.body.total).to.equal(1) | 654 | expect(res.body.total).to.equal(1) |
656 | 655 | ||
657 | const block = blocks[ 0 ] | 656 | const block = blocks[0] |
658 | expect(block.byAccount.displayName).to.equal('peertube') | 657 | expect(block.byAccount.displayName).to.equal('peertube') |
659 | expect(block.byAccount.name).to.equal('peertube') | 658 | expect(block.byAccount.name).to.equal('peertube') |
660 | expect(block.blockedServer.host).to.equal('localhost:' + servers[1].port) | 659 | expect(block.blockedServer.host).to.equal('localhost:' + servers[1].port) |
661 | }) | 660 | }) |
662 | 661 | ||
663 | it('Should unblock the remote server', async function () { | 662 | it('Should unblock the remote server', async function () { |
664 | await removeServerFromServerBlocklist(servers[ 0 ].url, servers[ 0 ].accessToken, 'localhost:' + servers[1].port) | 663 | await removeServerFromServerBlocklist(servers[0].url, servers[0].accessToken, 'localhost:' + servers[1].port) |
665 | }) | 664 | }) |
666 | 665 | ||
667 | it('Should list all videos', async function () { | 666 | it('Should list all videos', async function () { |
668 | for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) { | 667 | for (const token of [ userModeratorToken, servers[0].accessToken ]) { |
669 | await checkAllVideos(servers[ 0 ].url, token) | 668 | await checkAllVideos(servers[0].url, token) |
670 | } | 669 | } |
671 | }) | 670 | }) |
672 | 671 | ||
673 | it('Should list the comments', async function () { | 672 | it('Should list the comments', async function () { |
674 | for (const token of [ userModeratorToken, servers[ 0 ].accessToken ]) { | 673 | for (const token of [ userModeratorToken, servers[0].accessToken ]) { |
675 | await checkAllComments(servers[ 0 ].url, token, videoUUID1) | 674 | await checkAllComments(servers[0].url, token, videoUUID1) |
676 | } | 675 | } |
677 | }) | 676 | }) |
678 | 677 | ||
@@ -680,18 +679,18 @@ describe('Test blocklist', function () { | |||
680 | this.timeout(20000) | 679 | this.timeout(20000) |
681 | 680 | ||
682 | { | 681 | { |
683 | const comment = { server: servers[ 1 ], token: userToken2, videoUUID: videoUUID1, text: 'displayed comment' } | 682 | const comment = { server: servers[1], token: userToken2, videoUUID: videoUUID1, text: 'displayed comment' } |
684 | await checkCommentNotification(servers[ 0 ], comment, 'presence') | 683 | await checkCommentNotification(servers[0], comment, 'presence') |
685 | } | 684 | } |
686 | 685 | ||
687 | { | 686 | { |
688 | const comment = { | 687 | const comment = { |
689 | server: servers[ 1 ], | 688 | server: servers[1], |
690 | token: userToken2, | 689 | token: userToken2, |
691 | videoUUID: videoUUID1, | 690 | videoUUID: videoUUID1, |
692 | text: 'hello @root@localhost:' + servers[ 0 ].port | 691 | text: 'hello @root@localhost:' + servers[0].port |
693 | } | 692 | } |
694 | await checkCommentNotification(servers[ 0 ], comment, 'presence') | 693 | await checkCommentNotification(servers[0], comment, 'presence') |
695 | } | 694 | } |
696 | }) | 695 | }) |
697 | }) | 696 | }) |
diff --git a/server/tests/api/users/user-subscriptions.ts b/server/tests/api/users/user-subscriptions.ts index 08017f89c..7d6b0c6a9 100644 --- a/server/tests/api/users/user-subscriptions.ts +++ b/server/tests/api/users/user-subscriptions.ts | |||
@@ -1,4 +1,4 @@ | |||
1 | /* tslint:disable:no-unused-expression */ | 1 | /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ |
2 | 2 | ||
3 | import * as chai from 'chai' | 3 | import * as chai from 'chai' |
4 | import 'mocha' | 4 | import 'mocha' |
@@ -13,16 +13,17 @@ import { | |||
13 | updateVideo, | 13 | updateVideo, |
14 | userLogin | 14 | userLogin |
15 | } from '../../../../shared/extra-utils' | 15 | } from '../../../../shared/extra-utils' |
16 | import { killallServers, ServerInfo, uploadVideo } from '../../../../shared/extra-utils/index' | 16 | import { ServerInfo, uploadVideo } from '../../../../shared/extra-utils/index' |
17 | import { setAccessTokensToServers } from '../../../../shared/extra-utils/users/login' | 17 | import { setAccessTokensToServers } from '../../../../shared/extra-utils/users/login' |
18 | import { Video, VideoChannel } from '../../../../shared/models/videos' | 18 | import { Video, VideoChannel } from '../../../../shared/models/videos' |
19 | import { waitJobs } from '../../../../shared/extra-utils/server/jobs' | 19 | import { waitJobs } from '../../../../shared/extra-utils/server/jobs' |
20 | import { | 20 | import { |
21 | addUserSubscription, | 21 | addUserSubscription, |
22 | areSubscriptionsExist, | ||
23 | getUserSubscription, | ||
22 | listUserSubscriptions, | 24 | listUserSubscriptions, |
23 | listUserSubscriptionVideos, | 25 | listUserSubscriptionVideos, |
24 | removeUserSubscription, | 26 | removeUserSubscription |
25 | getUserSubscription, areSubscriptionsExist | ||
26 | } from '../../../../shared/extra-utils/users/user-subscriptions' | 27 | } from '../../../../shared/extra-utils/users/user-subscriptions' |
27 | 28 | ||
28 | const expect = chai.expect | 29 | const expect = chai.expect |
@@ -116,7 +117,7 @@ describe('Test users subscriptions', function () { | |||
116 | 117 | ||
117 | it('Should get subscription', async function () { | 118 | it('Should get subscription', async function () { |
118 | { | 119 | { |
119 | const res = await getUserSubscription(servers[ 0 ].url, users[ 0 ].accessToken, 'user3_channel@localhost:' + servers[2].port) | 120 | const res = await getUserSubscription(servers[0].url, users[0].accessToken, 'user3_channel@localhost:' + servers[2].port) |
120 | const videoChannel: VideoChannel = res.body | 121 | const videoChannel: VideoChannel = res.body |
121 | 122 | ||
122 | expect(videoChannel.name).to.equal('user3_channel') | 123 | expect(videoChannel.name).to.equal('user3_channel') |
@@ -127,7 +128,7 @@ describe('Test users subscriptions', function () { | |||
127 | } | 128 | } |
128 | 129 | ||
129 | { | 130 | { |
130 | const res = await getUserSubscription(servers[ 0 ].url, users[ 0 ].accessToken, 'root_channel@localhost:' + servers[0].port) | 131 | const res = await getUserSubscription(servers[0].url, users[0].accessToken, 'root_channel@localhost:' + servers[0].port) |
131 | const videoChannel: VideoChannel = res.body | 132 | const videoChannel: VideoChannel = res.body |
132 | 133 | ||
133 | expect(videoChannel.name).to.equal('root_channel') | 134 | expect(videoChannel.name).to.equal('root_channel') |
@@ -146,7 +147,7 @@ describe('Test users subscriptions', function () { | |||
146 | 'user3_channel@localhost:' + servers[0].port | 147 | 'user3_channel@localhost:' + servers[0].port |
147 | ] | 148 | ] |
148 | 149 | ||
149 | const res = await areSubscriptionsExist(servers[ 0 ].url, users[ 0 ].accessToken, uris) | 150 | const res = await areSubscriptionsExist(servers[0].url, users[0].accessToken, uris) |
150 | const body = res.body | 151 | const body = res.body |
151 | 152 | ||
152 | expect(body['user3_channel@localhost:' + servers[2].port]).to.be.true | 153 | expect(body['user3_channel@localhost:' + servers[2].port]).to.be.true |
diff --git a/server/tests/api/users/users-multiple-servers.ts b/server/tests/api/users/users-multiple-servers.ts index 791418318..591ce4959 100644 --- a/server/tests/api/users/users-multiple-servers.ts +++ b/server/tests/api/users/users-multiple-servers.ts | |||
@@ -1,4 +1,4 @@ | |||
1 | /* tslint:disable:no-unused-expression */ | 1 | /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ |
2 | 2 | ||
3 | import * as chai from 'chai' | 3 | import * as chai from 'chai' |
4 | import 'mocha' | 4 | import 'mocha' |
@@ -57,17 +57,17 @@ describe('Test users with multiple servers', function () { | |||
57 | password: 'password' | 57 | password: 'password' |
58 | } | 58 | } |
59 | const res = await createUser({ | 59 | const res = await createUser({ |
60 | url: servers[ 0 ].url, | 60 | url: servers[0].url, |
61 | accessToken: servers[ 0 ].accessToken, | 61 | accessToken: servers[0].accessToken, |
62 | username: user.username, | 62 | username: user.username, |
63 | password: user.password | 63 | password: user.password |
64 | }) | 64 | }) |
65 | userId = res.body.user.id | 65 | userId = res.body.user.id |
66 | userAccessToken = await userLogin(servers[ 0 ], user) | 66 | userAccessToken = await userLogin(servers[0], user) |
67 | } | 67 | } |
68 | 68 | ||
69 | { | 69 | { |
70 | const resVideo = await uploadVideo(servers[ 0 ].url, userAccessToken, {}) | 70 | const resVideo = await uploadVideo(servers[0].url, userAccessToken, {}) |
71 | videoUUID = resVideo.body.video.uuid | 71 | videoUUID = resVideo.body.video.uuid |
72 | } | 72 | } |
73 | 73 | ||
@@ -86,7 +86,6 @@ describe('Test users with multiple servers', function () { | |||
86 | const res = await getMyUserInformation(servers[0].url, servers[0].accessToken) | 86 | const res = await getMyUserInformation(servers[0].url, servers[0].accessToken) |
87 | user = res.body | 87 | user = res.body |
88 | 88 | ||
89 | const account: Account = user.account | ||
90 | expect(user.account.displayName).to.equal('my super display name') | 89 | expect(user.account.displayName).to.equal('my super display name') |
91 | 90 | ||
92 | await waitJobs(servers) | 91 | await waitJobs(servers) |
diff --git a/server/tests/api/users/users-verification.ts b/server/tests/api/users/users-verification.ts index 7cd61f539..675ebf690 100644 --- a/server/tests/api/users/users-verification.ts +++ b/server/tests/api/users/users-verification.ts | |||
@@ -1,4 +1,4 @@ | |||
1 | /* tslint:disable:no-unused-expression */ | 1 | /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ |
2 | 2 | ||
3 | import * as chai from 'chai' | 3 | import * as chai from 'chai' |
4 | import 'mocha' | 4 | import 'mocha' |
diff --git a/server/tests/api/users/users.ts b/server/tests/api/users/users.ts index 24203a731..c0cbce360 100644 --- a/server/tests/api/users/users.ts +++ b/server/tests/api/users/users.ts | |||
@@ -1,9 +1,10 @@ | |||
1 | /* tslint:disable:no-unused-expression */ | 1 | /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ |
2 | 2 | ||
3 | import * as chai from 'chai' | 3 | import * as chai from 'chai' |
4 | import 'mocha' | 4 | import 'mocha' |
5 | import { User, UserRole, Video, MyUser, VideoPlaylistType } from '../../../../shared/index' | 5 | import { MyUser, User, UserRole, Video, VideoAbuseState, VideoAbuseUpdate, VideoPlaylistType } from '../../../../shared/index' |
6 | import { | 6 | import { |
7 | addVideoCommentThread, | ||
7 | blockUser, | 8 | blockUser, |
8 | cleanupTests, | 9 | cleanupTests, |
9 | createUser, | 10 | createUser, |
@@ -11,33 +12,41 @@ import { | |||
11 | flushAndRunServer, | 12 | flushAndRunServer, |
12 | getAccountRatings, | 13 | getAccountRatings, |
13 | getBlacklistedVideosList, | 14 | getBlacklistedVideosList, |
15 | getCustomConfig, | ||
14 | getMyUserInformation, | 16 | getMyUserInformation, |
15 | getMyUserVideoQuotaUsed, | 17 | getMyUserVideoQuotaUsed, |
16 | getMyUserVideoRating, | 18 | getMyUserVideoRating, |
17 | getUserInformation, | 19 | getUserInformation, |
18 | getUsersList, | 20 | getUsersList, |
19 | getUsersListPaginationAndSort, | 21 | getUsersListPaginationAndSort, |
22 | getVideoAbusesList, | ||
20 | getVideoChannel, | 23 | getVideoChannel, |
21 | getVideosList, installPlugin, | 24 | getVideosList, |
25 | installPlugin, | ||
22 | login, | 26 | login, |
23 | makePutBodyRequest, | 27 | makePutBodyRequest, |
24 | rateVideo, | 28 | rateVideo, |
25 | registerUserWithChannel, | 29 | registerUserWithChannel, |
26 | removeUser, | 30 | removeUser, |
27 | removeVideo, | 31 | removeVideo, |
32 | reportVideoAbuse, | ||
28 | ServerInfo, | 33 | ServerInfo, |
29 | testImage, | 34 | testImage, |
30 | unblockUser, | 35 | unblockUser, |
36 | updateCustomSubConfig, | ||
31 | updateMyAvatar, | 37 | updateMyAvatar, |
32 | updateMyUser, | 38 | updateMyUser, |
33 | updateUser, | 39 | updateUser, |
40 | updateVideoAbuse, | ||
34 | uploadVideo, | 41 | uploadVideo, |
35 | userLogin | 42 | userLogin, |
43 | waitJobs | ||
36 | } from '../../../../shared/extra-utils' | 44 | } from '../../../../shared/extra-utils' |
37 | import { follow } from '../../../../shared/extra-utils/server/follows' | 45 | import { follow } from '../../../../shared/extra-utils/server/follows' |
38 | import { setAccessTokensToServers } from '../../../../shared/extra-utils/users/login' | 46 | import { logout, serverLogin, setAccessTokensToServers } from '../../../../shared/extra-utils/users/login' |
39 | import { getMyVideos } from '../../../../shared/extra-utils/videos/videos' | 47 | import { getMyVideos } from '../../../../shared/extra-utils/videos/videos' |
40 | import { UserAdminFlag } from '../../../../shared/models/users/user-flag.model' | 48 | import { UserAdminFlag } from '../../../../shared/models/users/user-flag.model' |
49 | import { CustomConfig } from '@shared/models/server' | ||
41 | 50 | ||
42 | const expect = chai.expect | 51 | const expect = chai.expect |
43 | 52 | ||
@@ -54,7 +63,14 @@ describe('Test users', function () { | |||
54 | 63 | ||
55 | before(async function () { | 64 | before(async function () { |
56 | this.timeout(30000) | 65 | this.timeout(30000) |
57 | server = await flushAndRunServer(1) | 66 | |
67 | server = await flushAndRunServer(1, { | ||
68 | rates_limit: { | ||
69 | login: { | ||
70 | max: 30 | ||
71 | } | ||
72 | } | ||
73 | }) | ||
58 | 74 | ||
59 | await setAccessTokensToServers([ server ]) | 75 | await setAccessTokensToServers([ server ]) |
60 | 76 | ||
@@ -121,13 +137,13 @@ describe('Test users', function () { | |||
121 | 137 | ||
122 | it('Should be able to login with an insensitive username', async function () { | 138 | it('Should be able to login with an insensitive username', async function () { |
123 | const user = { username: 'RoOt', password: server.user.password } | 139 | const user = { username: 'RoOt', password: server.user.password } |
124 | const res = await login(server.url, server.client, user, 200) | 140 | await login(server.url, server.client, user, 200) |
125 | 141 | ||
126 | const user2 = { username: 'rOoT', password: server.user.password } | 142 | const user2 = { username: 'rOoT', password: server.user.password } |
127 | const res2 = await login(server.url, server.client, user2, 200) | 143 | await login(server.url, server.client, user2, 200) |
128 | 144 | ||
129 | const user3 = { username: 'ROOt', password: server.user.password } | 145 | const user3 = { username: 'ROOt', password: server.user.password } |
130 | const res3 = await login(server.url, server.client, user3, 200) | 146 | await login(server.url, server.client, user3, 200) |
131 | }) | 147 | }) |
132 | }) | 148 | }) |
133 | 149 | ||
@@ -137,7 +153,7 @@ describe('Test users', function () { | |||
137 | const videoAttributes = {} | 153 | const videoAttributes = {} |
138 | await uploadVideo(server.url, accessToken, videoAttributes) | 154 | await uploadVideo(server.url, accessToken, videoAttributes) |
139 | const res = await getVideosList(server.url) | 155 | const res = await getVideosList(server.url) |
140 | const video = res.body.data[ 0 ] | 156 | const video = res.body.data[0] |
141 | 157 | ||
142 | expect(video.account.name).to.equal('root') | 158 | expect(video.account.name).to.equal('root') |
143 | videoId = video.id | 159 | videoId = video.id |
@@ -167,8 +183,8 @@ describe('Test users', function () { | |||
167 | const ratings = res.body | 183 | const ratings = res.body |
168 | 184 | ||
169 | expect(ratings.total).to.equal(1) | 185 | expect(ratings.total).to.equal(1) |
170 | expect(ratings.data[ 0 ].video.id).to.equal(videoId) | 186 | expect(ratings.data[0].video.id).to.equal(videoId) |
171 | expect(ratings.data[ 0 ].rating).to.equal('like') | 187 | expect(ratings.data[0].rating).to.equal('like') |
172 | }) | 188 | }) |
173 | 189 | ||
174 | it('Should retrieve ratings list by rating type', async function () { | 190 | it('Should retrieve ratings list by rating type', async function () { |
@@ -199,13 +215,17 @@ describe('Test users', function () { | |||
199 | }) | 215 | }) |
200 | 216 | ||
201 | describe('Logout', function () { | 217 | describe('Logout', function () { |
202 | it('Should logout (revoke token)') | 218 | it('Should logout (revoke token)', async function () { |
203 | 219 | await logout(server.url, server.accessToken) | |
204 | it('Should not be able to get the user information') | 220 | }) |
205 | 221 | ||
206 | it('Should not be able to upload a video') | 222 | it('Should not be able to get the user information', async function () { |
223 | await getMyUserInformation(server.url, server.accessToken, 401) | ||
224 | }) | ||
207 | 225 | ||
208 | it('Should not be able to remove a video') | 226 | it('Should not be able to upload a video', async function () { |
227 | await uploadVideo(server.url, server.accessToken, { name: 'video' }, 401) | ||
228 | }) | ||
209 | 229 | ||
210 | it('Should not be able to rate a video', async function () { | 230 | it('Should not be able to rate a video', async function () { |
211 | const path = '/api/v1/videos/' | 231 | const path = '/api/v1/videos/' |
@@ -223,13 +243,17 @@ describe('Test users', function () { | |||
223 | await makePutBodyRequest(options) | 243 | await makePutBodyRequest(options) |
224 | }) | 244 | }) |
225 | 245 | ||
226 | it('Should be able to login again') | 246 | it('Should be able to login again', async function () { |
247 | server.accessToken = await serverLogin(server) | ||
248 | }) | ||
227 | 249 | ||
228 | it('Should have an expired access token') | 250 | it('Should have an expired access token') |
229 | 251 | ||
230 | it('Should refresh the token') | 252 | it('Should refresh the token') |
231 | 253 | ||
232 | it('Should be able to upload a video again') | 254 | it('Should be able to get my user information again', async function () { |
255 | await getMyUserInformation(server.url, server.accessToken) | ||
256 | }) | ||
233 | }) | 257 | }) |
234 | 258 | ||
235 | describe('Creating a user', function () { | 259 | describe('Creating a user', function () { |
@@ -253,7 +277,7 @@ describe('Test users', function () { | |||
253 | const res1 = await getMyUserInformation(server.url, accessTokenUser) | 277 | const res1 = await getMyUserInformation(server.url, accessTokenUser) |
254 | const userMe: MyUser = res1.body | 278 | const userMe: MyUser = res1.body |
255 | 279 | ||
256 | const res2 = await getUserInformation(server.url, server.accessToken, userMe.id) | 280 | const res2 = await getUserInformation(server.url, server.accessToken, userMe.id, true) |
257 | const userGet: User = res2.body | 281 | const userGet: User = res2.body |
258 | 282 | ||
259 | for (const user of [ userMe, userGet ]) { | 283 | for (const user of [ userMe, userGet ]) { |
@@ -272,13 +296,23 @@ describe('Test users', function () { | |||
272 | 296 | ||
273 | expect(userMe.specialPlaylists).to.have.lengthOf(1) | 297 | expect(userMe.specialPlaylists).to.have.lengthOf(1) |
274 | expect(userMe.specialPlaylists[0].type).to.equal(VideoPlaylistType.WATCH_LATER) | 298 | expect(userMe.specialPlaylists[0].type).to.equal(VideoPlaylistType.WATCH_LATER) |
299 | |||
300 | // Check stats are included with withStats | ||
301 | expect(userGet.videosCount).to.be.a('number') | ||
302 | expect(userGet.videosCount).to.equal(0) | ||
303 | expect(userGet.videoCommentsCount).to.be.a('number') | ||
304 | expect(userGet.videoCommentsCount).to.equal(0) | ||
305 | expect(userGet.videoAbusesCount).to.be.a('number') | ||
306 | expect(userGet.videoAbusesCount).to.equal(0) | ||
307 | expect(userGet.videoAbusesAcceptedCount).to.be.a('number') | ||
308 | expect(userGet.videoAbusesAcceptedCount).to.equal(0) | ||
275 | }) | 309 | }) |
276 | }) | 310 | }) |
277 | 311 | ||
278 | describe('My videos & quotas', function () { | 312 | describe('My videos & quotas', function () { |
279 | 313 | ||
280 | it('Should be able to upload a video with this user', async function () { | 314 | it('Should be able to upload a video with this user', async function () { |
281 | this.timeout(5000) | 315 | this.timeout(10000) |
282 | 316 | ||
283 | const videoAttributes = { | 317 | const videoAttributes = { |
284 | name: 'super user video', | 318 | name: 'super user video', |
@@ -307,7 +341,7 @@ describe('Test users', function () { | |||
307 | const videos = res.body.data | 341 | const videos = res.body.data |
308 | expect(videos).to.have.lengthOf(1) | 342 | expect(videos).to.have.lengthOf(1) |
309 | 343 | ||
310 | const video: Video = videos[ 0 ] | 344 | const video: Video = videos[0] |
311 | expect(video.name).to.equal('super user video') | 345 | expect(video.name).to.equal('super user video') |
312 | expect(video.thumbnailPath).to.not.be.null | 346 | expect(video.thumbnailPath).to.not.be.null |
313 | expect(video.previewPath).to.not.be.null | 347 | expect(video.previewPath).to.not.be.null |
@@ -330,6 +364,36 @@ describe('Test users', function () { | |||
330 | expect(videos).to.have.lengthOf(0) | 364 | expect(videos).to.have.lengthOf(0) |
331 | } | 365 | } |
332 | }) | 366 | }) |
367 | |||
368 | it('Should disable webtorrent, enable HLS, and update my quota', async function () { | ||
369 | this.timeout(60000) | ||
370 | |||
371 | { | ||
372 | const res = await getCustomConfig(server.url, server.accessToken) | ||
373 | const config = res.body as CustomConfig | ||
374 | config.transcoding.webtorrent.enabled = false | ||
375 | config.transcoding.hls.enabled = true | ||
376 | config.transcoding.enabled = true | ||
377 | await updateCustomSubConfig(server.url, server.accessToken, config) | ||
378 | } | ||
379 | |||
380 | { | ||
381 | const videoAttributes = { | ||
382 | name: 'super user video 2', | ||
383 | fixture: 'video_short.webm' | ||
384 | } | ||
385 | await uploadVideo(server.url, accessTokenUser, videoAttributes) | ||
386 | |||
387 | await waitJobs([ server ]) | ||
388 | } | ||
389 | |||
390 | { | ||
391 | const res = await getMyUserVideoQuotaUsed(server.url, accessTokenUser) | ||
392 | const data = res.body | ||
393 | |||
394 | expect(data.videoQuotaUsed).to.be.greaterThan(220000) | ||
395 | } | ||
396 | }) | ||
333 | }) | 397 | }) |
334 | 398 | ||
335 | describe('Users listing', function () { | 399 | describe('Users listing', function () { |
@@ -344,16 +408,19 @@ describe('Test users', function () { | |||
344 | expect(users).to.be.an('array') | 408 | expect(users).to.be.an('array') |
345 | expect(users.length).to.equal(2) | 409 | expect(users.length).to.equal(2) |
346 | 410 | ||
347 | const user = users[ 0 ] | 411 | const user = users[0] |
348 | expect(user.username).to.equal('user_1') | 412 | expect(user.username).to.equal('user_1') |
349 | expect(user.email).to.equal('user_1@example.com') | 413 | expect(user.email).to.equal('user_1@example.com') |
350 | expect(user.nsfwPolicy).to.equal('display') | 414 | expect(user.nsfwPolicy).to.equal('display') |
351 | 415 | ||
352 | const rootUser = users[ 1 ] | 416 | const rootUser = users[1] |
353 | expect(rootUser.username).to.equal('root') | 417 | expect(rootUser.username).to.equal('root') |
354 | expect(rootUser.email).to.equal('admin' + server.internalServerNumber + '@example.com') | 418 | expect(rootUser.email).to.equal('admin' + server.internalServerNumber + '@example.com') |
355 | expect(user.nsfwPolicy).to.equal('display') | 419 | expect(user.nsfwPolicy).to.equal('display') |
356 | 420 | ||
421 | expect(rootUser.lastLoginDate).to.exist | ||
422 | expect(user.lastLoginDate).to.exist | ||
423 | |||
357 | userId = user.id | 424 | userId = user.id |
358 | }) | 425 | }) |
359 | 426 | ||
@@ -367,7 +434,7 @@ describe('Test users', function () { | |||
367 | expect(total).to.equal(2) | 434 | expect(total).to.equal(2) |
368 | expect(users.length).to.equal(1) | 435 | expect(users.length).to.equal(1) |
369 | 436 | ||
370 | const user = users[ 0 ] | 437 | const user = users[0] |
371 | expect(user.username).to.equal('root') | 438 | expect(user.username).to.equal('root') |
372 | expect(user.email).to.equal('admin' + server.internalServerNumber + '@example.com') | 439 | expect(user.email).to.equal('admin' + server.internalServerNumber + '@example.com') |
373 | expect(user.roleLabel).to.equal('Administrator') | 440 | expect(user.roleLabel).to.equal('Administrator') |
@@ -383,7 +450,7 @@ describe('Test users', function () { | |||
383 | expect(total).to.equal(2) | 450 | expect(total).to.equal(2) |
384 | expect(users.length).to.equal(1) | 451 | expect(users.length).to.equal(1) |
385 | 452 | ||
386 | const user = users[ 0 ] | 453 | const user = users[0] |
387 | expect(user.username).to.equal('user_1') | 454 | expect(user.username).to.equal('user_1') |
388 | expect(user.email).to.equal('user_1@example.com') | 455 | expect(user.email).to.equal('user_1@example.com') |
389 | expect(user.nsfwPolicy).to.equal('display') | 456 | expect(user.nsfwPolicy).to.equal('display') |
@@ -398,7 +465,7 @@ describe('Test users', function () { | |||
398 | expect(total).to.equal(2) | 465 | expect(total).to.equal(2) |
399 | expect(users.length).to.equal(1) | 466 | expect(users.length).to.equal(1) |
400 | 467 | ||
401 | const user = users[ 0 ] | 468 | const user = users[0] |
402 | expect(user.username).to.equal('user_1') | 469 | expect(user.username).to.equal('user_1') |
403 | expect(user.email).to.equal('user_1@example.com') | 470 | expect(user.email).to.equal('user_1@example.com') |
404 | expect(user.nsfwPolicy).to.equal('display') | 471 | expect(user.nsfwPolicy).to.equal('display') |
@@ -413,13 +480,13 @@ describe('Test users', function () { | |||
413 | expect(total).to.equal(2) | 480 | expect(total).to.equal(2) |
414 | expect(users.length).to.equal(2) | 481 | expect(users.length).to.equal(2) |
415 | 482 | ||
416 | expect(users[ 0 ].username).to.equal('root') | 483 | expect(users[0].username).to.equal('root') |
417 | expect(users[ 0 ].email).to.equal('admin' + server.internalServerNumber + '@example.com') | 484 | expect(users[0].email).to.equal('admin' + server.internalServerNumber + '@example.com') |
418 | expect(users[ 0 ].nsfwPolicy).to.equal('display') | 485 | expect(users[0].nsfwPolicy).to.equal('display') |
419 | 486 | ||
420 | expect(users[ 1 ].username).to.equal('user_1') | 487 | expect(users[1].username).to.equal('user_1') |
421 | expect(users[ 1 ].email).to.equal('user_1@example.com') | 488 | expect(users[1].email).to.equal('user_1@example.com') |
422 | expect(users[ 1 ].nsfwPolicy).to.equal('display') | 489 | expect(users[1].nsfwPolicy).to.equal('display') |
423 | }) | 490 | }) |
424 | 491 | ||
425 | it('Should search user by username', async function () { | 492 | it('Should search user by username', async function () { |
@@ -429,7 +496,7 @@ describe('Test users', function () { | |||
429 | expect(res.body.total).to.equal(1) | 496 | expect(res.body.total).to.equal(1) |
430 | expect(users.length).to.equal(1) | 497 | expect(users.length).to.equal(1) |
431 | 498 | ||
432 | expect(users[ 0 ].username).to.equal('root') | 499 | expect(users[0].username).to.equal('root') |
433 | }) | 500 | }) |
434 | 501 | ||
435 | it('Should search user by email', async function () { | 502 | it('Should search user by email', async function () { |
@@ -440,8 +507,8 @@ describe('Test users', function () { | |||
440 | expect(res.body.total).to.equal(1) | 507 | expect(res.body.total).to.equal(1) |
441 | expect(users.length).to.equal(1) | 508 | expect(users.length).to.equal(1) |
442 | 509 | ||
443 | expect(users[ 0 ].username).to.equal('user_1') | 510 | expect(users[0].username).to.equal('user_1') |
444 | expect(users[ 0 ].email).to.equal('user_1@example.com') | 511 | expect(users[0].email).to.equal('user_1@example.com') |
445 | } | 512 | } |
446 | 513 | ||
447 | { | 514 | { |
@@ -451,8 +518,8 @@ describe('Test users', function () { | |||
451 | expect(res.body.total).to.equal(2) | 518 | expect(res.body.total).to.equal(2) |
452 | expect(users.length).to.equal(2) | 519 | expect(users.length).to.equal(2) |
453 | 520 | ||
454 | expect(users[ 0 ].username).to.equal('root') | 521 | expect(users[0].username).to.equal('root') |
455 | expect(users[ 1 ].username).to.equal('user_1') | 522 | expect(users[1].username).to.equal('user_1') |
456 | } | 523 | } |
457 | }) | 524 | }) |
458 | }) | 525 | }) |
@@ -622,7 +689,6 @@ describe('Test users', function () { | |||
622 | }) | 689 | }) |
623 | 690 | ||
624 | describe('Updating another user', function () { | 691 | describe('Updating another user', function () { |
625 | |||
626 | it('Should be able to update another user', async function () { | 692 | it('Should be able to update another user', async function () { |
627 | await updateUser({ | 693 | await updateUser({ |
628 | url: server.url, | 694 | url: server.url, |
@@ -691,12 +757,14 @@ describe('Test users', function () { | |||
691 | 757 | ||
692 | expect(res.body.total).to.equal(1) | 758 | expect(res.body.total).to.equal(1) |
693 | 759 | ||
694 | const video = res.body.data[ 0 ] | 760 | const video = res.body.data[0] |
695 | expect(video.account.name).to.equal('root') | 761 | expect(video.account.name).to.equal('root') |
696 | }) | 762 | }) |
697 | }) | 763 | }) |
698 | 764 | ||
699 | describe('Registering a new user', function () { | 765 | describe('Registering a new user', function () { |
766 | let user15AccessToken | ||
767 | |||
700 | it('Should register a new user', async function () { | 768 | it('Should register a new user', async function () { |
701 | const user = { displayName: 'super user 15', username: 'user_15', password: 'my super password' } | 769 | const user = { displayName: 'super user 15', username: 'user_15', password: 'my super password' } |
702 | const channel = { name: 'my_user_15_channel', displayName: 'my channel rocks' } | 770 | const channel = { name: 'my_user_15_channel', displayName: 'my channel rocks' } |
@@ -710,18 +778,18 @@ describe('Test users', function () { | |||
710 | password: 'my super password' | 778 | password: 'my super password' |
711 | } | 779 | } |
712 | 780 | ||
713 | accessToken = await userLogin(server, user15) | 781 | user15AccessToken = await userLogin(server, user15) |
714 | }) | 782 | }) |
715 | 783 | ||
716 | it('Should have the correct display name', async function () { | 784 | it('Should have the correct display name', async function () { |
717 | const res = await getMyUserInformation(server.url, accessToken) | 785 | const res = await getMyUserInformation(server.url, user15AccessToken) |
718 | const user: User = res.body | 786 | const user: User = res.body |
719 | 787 | ||
720 | expect(user.account.displayName).to.equal('super user 15') | 788 | expect(user.account.displayName).to.equal('super user 15') |
721 | }) | 789 | }) |
722 | 790 | ||
723 | it('Should have the correct video quota', async function () { | 791 | it('Should have the correct video quota', async function () { |
724 | const res = await getMyUserInformation(server.url, accessToken) | 792 | const res = await getMyUserInformation(server.url, user15AccessToken) |
725 | const user = res.body | 793 | const user = res.body |
726 | 794 | ||
727 | expect(user.videoQuota).to.equal(5 * 1024 * 1024) | 795 | expect(user.videoQuota).to.equal(5 * 1024 * 1024) |
@@ -739,7 +807,7 @@ describe('Test users', function () { | |||
739 | expect(res.body.data.find(u => u.username === 'user_15')).to.not.be.undefined | 807 | expect(res.body.data.find(u => u.username === 'user_15')).to.not.be.undefined |
740 | } | 808 | } |
741 | 809 | ||
742 | await deleteMe(server.url, accessToken) | 810 | await deleteMe(server.url, user15AccessToken) |
743 | 811 | ||
744 | { | 812 | { |
745 | const res = await getUsersList(server.url, server.accessToken) | 813 | const res = await getUsersList(server.url, server.accessToken) |
@@ -749,6 +817,9 @@ describe('Test users', function () { | |||
749 | }) | 817 | }) |
750 | 818 | ||
751 | describe('User blocking', function () { | 819 | describe('User blocking', function () { |
820 | let user16Id | ||
821 | let user16AccessToken | ||
822 | |||
752 | it('Should block and unblock a user', async function () { | 823 | it('Should block and unblock a user', async function () { |
753 | const user16 = { | 824 | const user16 = { |
754 | username: 'user_16', | 825 | username: 'user_16', |
@@ -760,19 +831,95 @@ describe('Test users', function () { | |||
760 | username: user16.username, | 831 | username: user16.username, |
761 | password: user16.password | 832 | password: user16.password |
762 | }) | 833 | }) |
763 | const user16Id = resUser.body.user.id | 834 | user16Id = resUser.body.user.id |
764 | 835 | ||
765 | accessToken = await userLogin(server, user16) | 836 | user16AccessToken = await userLogin(server, user16) |
766 | 837 | ||
767 | await getMyUserInformation(server.url, accessToken, 200) | 838 | await getMyUserInformation(server.url, user16AccessToken, 200) |
768 | await blockUser(server.url, user16Id, server.accessToken) | 839 | await blockUser(server.url, user16Id, server.accessToken) |
769 | 840 | ||
770 | await getMyUserInformation(server.url, accessToken, 401) | 841 | await getMyUserInformation(server.url, user16AccessToken, 401) |
771 | await userLogin(server, user16, 400) | 842 | await userLogin(server, user16, 400) |
772 | 843 | ||
773 | await unblockUser(server.url, user16Id, server.accessToken) | 844 | await unblockUser(server.url, user16Id, server.accessToken) |
774 | accessToken = await userLogin(server, user16) | 845 | user16AccessToken = await userLogin(server, user16) |
775 | await getMyUserInformation(server.url, accessToken, 200) | 846 | await getMyUserInformation(server.url, user16AccessToken, 200) |
847 | }) | ||
848 | }) | ||
849 | |||
850 | describe('User stats', function () { | ||
851 | let user17Id | ||
852 | let user17AccessToken | ||
853 | |||
854 | it('Should report correct initial statistics about a user', async function () { | ||
855 | const user17 = { | ||
856 | username: 'user_17', | ||
857 | password: 'my super password' | ||
858 | } | ||
859 | const resUser = await createUser({ | ||
860 | url: server.url, | ||
861 | accessToken: server.accessToken, | ||
862 | username: user17.username, | ||
863 | password: user17.password | ||
864 | }) | ||
865 | |||
866 | user17Id = resUser.body.user.id | ||
867 | user17AccessToken = await userLogin(server, user17) | ||
868 | |||
869 | const res = await getUserInformation(server.url, server.accessToken, user17Id, true) | ||
870 | const user: User = res.body | ||
871 | |||
872 | expect(user.videosCount).to.equal(0) | ||
873 | expect(user.videoCommentsCount).to.equal(0) | ||
874 | expect(user.videoAbusesCount).to.equal(0) | ||
875 | expect(user.videoAbusesCreatedCount).to.equal(0) | ||
876 | expect(user.videoAbusesAcceptedCount).to.equal(0) | ||
877 | }) | ||
878 | |||
879 | it('Should report correct videos count', async function () { | ||
880 | const videoAttributes = { | ||
881 | name: 'video to test user stats' | ||
882 | } | ||
883 | await uploadVideo(server.url, user17AccessToken, videoAttributes) | ||
884 | const res1 = await getVideosList(server.url) | ||
885 | videoId = res1.body.data.find(video => video.name === videoAttributes.name).id | ||
886 | |||
887 | const res2 = await getUserInformation(server.url, server.accessToken, user17Id, true) | ||
888 | const user: User = res2.body | ||
889 | |||
890 | expect(user.videosCount).to.equal(1) | ||
891 | }) | ||
892 | |||
893 | it('Should report correct video comments for user', async function () { | ||
894 | const text = 'super comment' | ||
895 | await addVideoCommentThread(server.url, user17AccessToken, videoId, text) | ||
896 | |||
897 | const res = await getUserInformation(server.url, server.accessToken, user17Id, true) | ||
898 | const user: User = res.body | ||
899 | |||
900 | expect(user.videoCommentsCount).to.equal(1) | ||
901 | }) | ||
902 | |||
903 | it('Should report correct video abuses counts', async function () { | ||
904 | const reason = 'my super bad reason' | ||
905 | await reportVideoAbuse(server.url, user17AccessToken, videoId, reason) | ||
906 | |||
907 | const res1 = await getVideoAbusesList({ url: server.url, token: server.accessToken }) | ||
908 | const abuseId = res1.body.data[0].id | ||
909 | |||
910 | const res2 = await getUserInformation(server.url, server.accessToken, user17Id, true) | ||
911 | const user2: User = res2.body | ||
912 | |||
913 | expect(user2.videoAbusesCount).to.equal(1) // number of incriminations | ||
914 | expect(user2.videoAbusesCreatedCount).to.equal(1) // number of reports created | ||
915 | |||
916 | const body: VideoAbuseUpdate = { state: VideoAbuseState.ACCEPTED } | ||
917 | await updateVideoAbuse(server.url, server.accessToken, videoId, abuseId, body) | ||
918 | |||
919 | const res3 = await getUserInformation(server.url, server.accessToken, user17Id, true) | ||
920 | const user3: User = res3.body | ||
921 | |||
922 | expect(user3.videoAbusesAcceptedCount).to.equal(1) // number of reports created accepted | ||
776 | }) | 923 | }) |
777 | }) | 924 | }) |
778 | 925 | ||