diff options
author | Chocobozzz <me@florianbigard.com> | 2021-07-07 16:02:46 +0200 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2021-07-20 15:27:17 +0200 |
commit | 5f8bd4cbb178290da7d8f81e996f19f0eccc8e4c (patch) | |
tree | 02d056121540652b0867fc2ef56699138afe6271 | |
parent | 9fff08cf83f34339df7ed4ac770e1dee536adf9d (diff) | |
download | PeerTube-5f8bd4cbb178290da7d8f81e996f19f0eccc8e4c.tar.gz PeerTube-5f8bd4cbb178290da7d8f81e996f19f0eccc8e4c.tar.zst PeerTube-5f8bd4cbb178290da7d8f81e996f19f0eccc8e4c.zip |
Introduce blocklist command
-rw-r--r-- | server/tests/api/moderation/abuses.ts | 14 | ||||
-rw-r--r-- | server/tests/api/moderation/blocklist-notification.ts | 41 | ||||
-rw-r--r-- | server/tests/api/moderation/blocklist.ts | 100 | ||||
-rw-r--r-- | server/tests/api/notifications/comments-notifications.ts | 10 | ||||
-rw-r--r-- | server/tests/api/videos/video-playlists.ts | 26 | ||||
-rw-r--r-- | server/tests/api/videos/videos-overview.ts | 3 | ||||
-rw-r--r-- | server/tests/external-plugins/auto-mute.ts | 9 | ||||
-rw-r--r-- | server/tests/feeds/feeds.ts | 29 | ||||
-rw-r--r-- | shared/extra-utils/server/servers.ts | 4 | ||||
-rw-r--r-- | shared/extra-utils/socket/socket-io-command.ts | 2 | ||||
-rw-r--r-- | shared/extra-utils/users/blocklist-command.ts | 135 | ||||
-rw-r--r-- | shared/extra-utils/users/blocklist.ts | 238 | ||||
-rw-r--r-- | shared/extra-utils/users/index.ts | 4 |
13 files changed, 230 insertions, 385 deletions
diff --git a/server/tests/api/moderation/abuses.ts b/server/tests/api/moderation/abuses.ts index 124833cf6..a2bd07b12 100644 --- a/server/tests/api/moderation/abuses.ts +++ b/server/tests/api/moderation/abuses.ts | |||
@@ -4,8 +4,6 @@ import 'mocha' | |||
4 | import * as chai from 'chai' | 4 | import * as chai from 'chai' |
5 | import { | 5 | import { |
6 | AbusesCommand, | 6 | AbusesCommand, |
7 | addAccountToServerBlocklist, | ||
8 | addServerToServerBlocklist, | ||
9 | addVideoCommentThread, | 7 | addVideoCommentThread, |
10 | cleanupTests, | 8 | cleanupTests, |
11 | createUser, | 9 | createUser, |
@@ -16,8 +14,6 @@ import { | |||
16 | getVideoCommentThreads, | 14 | getVideoCommentThreads, |
17 | getVideoIdFromUUID, | 15 | getVideoIdFromUUID, |
18 | getVideosList, | 16 | getVideosList, |
19 | removeAccountFromServerBlocklist, | ||
20 | removeServerFromServerBlocklist, | ||
21 | removeUser, | 17 | removeUser, |
22 | removeVideo, | 18 | removeVideo, |
23 | ServerInfo, | 19 | ServerInfo, |
@@ -27,7 +23,7 @@ import { | |||
27 | userLogin, | 23 | userLogin, |
28 | waitJobs | 24 | waitJobs |
29 | } from '@shared/extra-utils' | 25 | } from '@shared/extra-utils' |
30 | import { AbuseMessage, AbusePredefinedReasonsString, AbuseState, Account, AdminAbuse, UserAbuse, VideoComment } from '@shared/models' | 26 | import { AbuseMessage, AbusePredefinedReasonsString, AbuseState, AdminAbuse, UserAbuse, VideoComment } from '@shared/models' |
31 | 27 | ||
32 | const expect = chai.expect | 28 | const expect = chai.expect |
33 | 29 | ||
@@ -225,7 +221,7 @@ describe('Test abuses', function () { | |||
225 | const accountToBlock = 'root@' + servers[1].host | 221 | const accountToBlock = 'root@' + servers[1].host |
226 | 222 | ||
227 | { | 223 | { |
228 | await addAccountToServerBlocklist(servers[0].url, servers[0].accessToken, accountToBlock) | 224 | await servers[0].blocklistCommand.addToServerBlocklist({ account: accountToBlock }) |
229 | 225 | ||
230 | const body = await commands[0].getAdminList() | 226 | const body = await commands[0].getAdminList() |
231 | expect(body.total).to.equal(2) | 227 | expect(body.total).to.equal(2) |
@@ -235,7 +231,7 @@ describe('Test abuses', function () { | |||
235 | } | 231 | } |
236 | 232 | ||
237 | { | 233 | { |
238 | await removeAccountFromServerBlocklist(servers[0].url, servers[0].accessToken, accountToBlock) | 234 | await servers[0].blocklistCommand.removeFromServerBlocklist({ account: accountToBlock }) |
239 | 235 | ||
240 | const body = await commands[0].getAdminList() | 236 | const body = await commands[0].getAdminList() |
241 | expect(body.total).to.equal(3) | 237 | expect(body.total).to.equal(3) |
@@ -246,7 +242,7 @@ describe('Test abuses', function () { | |||
246 | const serverToBlock = servers[1].host | 242 | const serverToBlock = servers[1].host |
247 | 243 | ||
248 | { | 244 | { |
249 | await addServerToServerBlocklist(servers[0].url, servers[0].accessToken, servers[1].host) | 245 | await servers[0].blocklistCommand.addToServerBlocklist({ server: serverToBlock }) |
250 | 246 | ||
251 | const body = await commands[0].getAdminList() | 247 | const body = await commands[0].getAdminList() |
252 | expect(body.total).to.equal(2) | 248 | expect(body.total).to.equal(2) |
@@ -256,7 +252,7 @@ describe('Test abuses', function () { | |||
256 | } | 252 | } |
257 | 253 | ||
258 | { | 254 | { |
259 | await removeServerFromServerBlocklist(servers[0].url, servers[0].accessToken, serverToBlock) | 255 | await servers[0].blocklistCommand.removeFromServerBlocklist({ server: serverToBlock }) |
260 | 256 | ||
261 | const body = await commands[0].getAdminList() | 257 | const body = await commands[0].getAdminList() |
262 | expect(body.total).to.equal(3) | 258 | expect(body.total).to.equal(3) |
diff --git a/server/tests/api/moderation/blocklist-notification.ts b/server/tests/api/moderation/blocklist-notification.ts index 4fb3c95f2..99da64a2d 100644 --- a/server/tests/api/moderation/blocklist-notification.ts +++ b/server/tests/api/moderation/blocklist-notification.ts | |||
@@ -2,30 +2,23 @@ | |||
2 | 2 | ||
3 | import 'mocha' | 3 | import 'mocha' |
4 | import * as chai from 'chai' | 4 | import * as chai from 'chai' |
5 | import { getUserNotifications, markAsReadAllNotifications } from '@shared/extra-utils/users/user-notifications' | ||
6 | import { addUserSubscription, removeUserSubscription } from '@shared/extra-utils/users/user-subscriptions' | ||
7 | import { UserNotification, UserNotificationType } from '@shared/models' | ||
8 | import { | 5 | import { |
6 | addUserSubscription, | ||
7 | addVideoCommentThread, | ||
9 | cleanupTests, | 8 | cleanupTests, |
10 | createUser, | 9 | createUser, |
11 | doubleFollow, | 10 | doubleFollow, |
12 | flushAndRunMultipleServers, | 11 | flushAndRunMultipleServers, |
12 | getUserNotifications, | ||
13 | markAsReadAllNotifications, | ||
14 | removeUserSubscription, | ||
13 | ServerInfo, | 15 | ServerInfo, |
16 | setAccessTokensToServers, | ||
14 | uploadVideo, | 17 | uploadVideo, |
15 | userLogin | 18 | userLogin, |
16 | } from '../../../../shared/extra-utils/index' | 19 | waitJobs |
17 | import { waitJobs } from '../../../../shared/extra-utils/server/jobs' | 20 | } from '@shared/extra-utils' |
18 | import { | 21 | import { UserNotification, UserNotificationType } from '@shared/models' |
19 | addAccountToAccountBlocklist, | ||
20 | addAccountToServerBlocklist, | ||
21 | addServerToAccountBlocklist, | ||
22 | addServerToServerBlocklist, | ||
23 | removeAccountFromAccountBlocklist, | ||
24 | removeAccountFromServerBlocklist, | ||
25 | removeServerFromAccountBlocklist | ||
26 | } from '../../../../shared/extra-utils/users/blocklist' | ||
27 | import { setAccessTokensToServers } from '../../../../shared/extra-utils/users/login' | ||
28 | import { addVideoCommentThread } from '../../../../shared/extra-utils/videos/video-comments' | ||
29 | 22 | ||
30 | const expect = chai.expect | 23 | const expect = chai.expect |
31 | 24 | ||
@@ -134,7 +127,7 @@ describe('Test blocklist', function () { | |||
134 | it('Should block an account', async function () { | 127 | it('Should block an account', async function () { |
135 | this.timeout(10000) | 128 | this.timeout(10000) |
136 | 129 | ||
137 | await addAccountToAccountBlocklist(servers[0].url, userToken1, 'user3@' + servers[1].host) | 130 | await servers[0].blocklistCommand.addToMyBlocklist({ token: userToken1, account: 'user3@' + servers[1].host }) |
138 | await waitJobs(servers) | 131 | await waitJobs(servers) |
139 | }) | 132 | }) |
140 | 133 | ||
@@ -147,7 +140,7 @@ describe('Test blocklist', function () { | |||
147 | 140 | ||
148 | await checkNotifications(servers[0].url, userToken2, notifs) | 141 | await checkNotifications(servers[0].url, userToken2, notifs) |
149 | 142 | ||
150 | await removeAccountFromAccountBlocklist(servers[0].url, userToken1, 'user3@' + servers[1].host) | 143 | await servers[0].blocklistCommand.removeFromMyBlocklist({ token: userToken1, account: 'user3@' + servers[1].host }) |
151 | }) | 144 | }) |
152 | }) | 145 | }) |
153 | 146 | ||
@@ -167,7 +160,7 @@ describe('Test blocklist', function () { | |||
167 | it('Should block an account', async function () { | 160 | it('Should block an account', async function () { |
168 | this.timeout(10000) | 161 | this.timeout(10000) |
169 | 162 | ||
170 | await addServerToAccountBlocklist(servers[0].url, userToken1, servers[1].host) | 163 | await servers[0].blocklistCommand.addToMyBlocklist({ token: userToken1, server: servers[1].host }) |
171 | await waitJobs(servers) | 164 | await waitJobs(servers) |
172 | }) | 165 | }) |
173 | 166 | ||
@@ -180,7 +173,7 @@ describe('Test blocklist', function () { | |||
180 | 173 | ||
181 | await checkNotifications(servers[0].url, userToken2, notifs) | 174 | await checkNotifications(servers[0].url, userToken2, notifs) |
182 | 175 | ||
183 | await removeServerFromAccountBlocklist(servers[0].url, userToken1, servers[1].host) | 176 | await servers[0].blocklistCommand.removeFromMyBlocklist({ token: userToken1, server: servers[1].host }) |
184 | }) | 177 | }) |
185 | }) | 178 | }) |
186 | 179 | ||
@@ -207,7 +200,7 @@ describe('Test blocklist', function () { | |||
207 | it('Should block an account', async function () { | 200 | it('Should block an account', async function () { |
208 | this.timeout(10000) | 201 | this.timeout(10000) |
209 | 202 | ||
210 | await addAccountToServerBlocklist(servers[0].url, servers[0].accessToken, 'user3@' + servers[1].host) | 203 | await servers[0].blocklistCommand.addToServerBlocklist({ account: 'user3@' + servers[1].host }) |
211 | await waitJobs(servers) | 204 | await waitJobs(servers) |
212 | }) | 205 | }) |
213 | 206 | ||
@@ -215,7 +208,7 @@ describe('Test blocklist', function () { | |||
215 | await checkNotifications(servers[0].url, userToken1, []) | 208 | await checkNotifications(servers[0].url, userToken1, []) |
216 | await checkNotifications(servers[0].url, userToken2, []) | 209 | await checkNotifications(servers[0].url, userToken2, []) |
217 | 210 | ||
218 | await removeAccountFromServerBlocklist(servers[0].url, servers[0].accessToken, 'user3@' + servers[1].host) | 211 | await servers[0].blocklistCommand.removeFromServerBlocklist({ account: 'user3@' + servers[1].host }) |
219 | }) | 212 | }) |
220 | }) | 213 | }) |
221 | 214 | ||
@@ -242,7 +235,7 @@ describe('Test blocklist', function () { | |||
242 | it('Should block an account', async function () { | 235 | it('Should block an account', async function () { |
243 | this.timeout(10000) | 236 | this.timeout(10000) |
244 | 237 | ||
245 | await addServerToServerBlocklist(servers[0].url, servers[0].accessToken, servers[1].host) | 238 | await servers[0].blocklistCommand.addToServerBlocklist({ server: servers[1].host }) |
246 | await waitJobs(servers) | 239 | await waitJobs(servers) |
247 | }) | 240 | }) |
248 | 241 | ||
diff --git a/server/tests/api/moderation/blocklist.ts b/server/tests/api/moderation/blocklist.ts index 9ca6324c2..1b8860571 100644 --- a/server/tests/api/moderation/blocklist.ts +++ b/server/tests/api/moderation/blocklist.ts | |||
@@ -3,46 +3,27 @@ | |||
3 | import 'mocha' | 3 | import 'mocha' |
4 | import * as chai from 'chai' | 4 | import * as chai from 'chai' |
5 | import { | 5 | import { |
6 | addAccountToAccountBlocklist, | ||
7 | addAccountToServerBlocklist, | ||
8 | addServerToAccountBlocklist, | ||
9 | addServerToServerBlocklist, | ||
10 | addVideoCommentReply, | 6 | addVideoCommentReply, |
11 | addVideoCommentThread, | 7 | addVideoCommentThread, |
8 | BlocklistCommand, | ||
12 | cleanupTests, | 9 | cleanupTests, |
13 | createUser, | 10 | createUser, |
14 | deleteVideoComment, | 11 | deleteVideoComment, |
15 | doubleFollow, | 12 | doubleFollow, |
16 | findCommentId, | 13 | findCommentId, |
17 | flushAndRunMultipleServers, | 14 | flushAndRunMultipleServers, |
18 | getAccountBlocklistByAccount, | ||
19 | getAccountBlocklistByServer, | ||
20 | getServerBlocklistByAccount, | ||
21 | getServerBlocklistByServer, | ||
22 | getUserNotifications, | 15 | getUserNotifications, |
23 | getVideoCommentThreads, | 16 | getVideoCommentThreads, |
24 | getVideosList, | 17 | getVideosList, |
25 | getVideosListWithToken, | 18 | getVideosListWithToken, |
26 | getVideoThreadComments, | 19 | getVideoThreadComments, |
27 | removeAccountFromAccountBlocklist, | ||
28 | removeAccountFromServerBlocklist, | ||
29 | removeServerFromAccountBlocklist, | ||
30 | removeServerFromServerBlocklist, | ||
31 | ServerInfo, | 20 | ServerInfo, |
32 | setAccessTokensToServers, | 21 | setAccessTokensToServers, |
33 | uploadVideo, | 22 | uploadVideo, |
34 | userLogin, | 23 | userLogin, |
35 | waitJobs | 24 | waitJobs |
36 | } from '@shared/extra-utils' | 25 | } from '@shared/extra-utils' |
37 | import { | 26 | import { UserNotification, UserNotificationType, Video, VideoComment, VideoCommentThreadTree } from '@shared/models' |
38 | AccountBlock, | ||
39 | ServerBlock, | ||
40 | UserNotification, | ||
41 | UserNotificationType, | ||
42 | Video, | ||
43 | VideoComment, | ||
44 | VideoCommentThreadTree | ||
45 | } from '@shared/models' | ||
46 | 27 | ||
47 | const expect = chai.expect | 28 | const expect = chai.expect |
48 | 29 | ||
@@ -108,6 +89,8 @@ describe('Test blocklist', function () { | |||
108 | let userModeratorToken: string | 89 | let userModeratorToken: string |
109 | let userToken2: string | 90 | let userToken2: string |
110 | 91 | ||
92 | let command: BlocklistCommand | ||
93 | |||
111 | before(async function () { | 94 | before(async function () { |
112 | this.timeout(120000) | 95 | this.timeout(120000) |
113 | 96 | ||
@@ -167,6 +150,8 @@ describe('Test blocklist', function () { | |||
167 | } | 150 | } |
168 | 151 | ||
169 | await waitJobs(servers) | 152 | await waitJobs(servers) |
153 | |||
154 | command = servers[0].blocklistCommand | ||
170 | }) | 155 | }) |
171 | 156 | ||
172 | describe('User blocklist', function () { | 157 | describe('User blocklist', function () { |
@@ -181,7 +166,7 @@ describe('Test blocklist', function () { | |||
181 | }) | 166 | }) |
182 | 167 | ||
183 | it('Should block a remote account', async function () { | 168 | it('Should block a remote account', async function () { |
184 | await addAccountToAccountBlocklist(servers[0].url, servers[0].accessToken, 'user2@localhost:' + servers[1].port) | 169 | await command.addToMyBlocklist({ account: 'user2@localhost:' + servers[1].port }) |
185 | }) | 170 | }) |
186 | 171 | ||
187 | it('Should hide its videos', async function () { | 172 | it('Should hide its videos', async function () { |
@@ -195,7 +180,7 @@ describe('Test blocklist', function () { | |||
195 | }) | 180 | }) |
196 | 181 | ||
197 | it('Should block a local account', async function () { | 182 | it('Should block a local account', async function () { |
198 | await addAccountToAccountBlocklist(servers[0].url, servers[0].accessToken, 'user1') | 183 | await command.addToMyBlocklist({ account: 'user1' }) |
199 | }) | 184 | }) |
200 | 185 | ||
201 | it('Should hide its videos', async function () { | 186 | it('Should hide its videos', async function () { |
@@ -251,12 +236,10 @@ describe('Test blocklist', function () { | |||
251 | 236 | ||
252 | it('Should list blocked accounts', async function () { | 237 | it('Should list blocked accounts', async function () { |
253 | { | 238 | { |
254 | const res = await getAccountBlocklistByAccount(servers[0].url, servers[0].accessToken, 0, 1, 'createdAt') | 239 | const body = await command.listMyAccountBlocklist({ start: 0, count: 1, sort: 'createdAt' }) |
255 | const blocks: AccountBlock[] = res.body.data | 240 | expect(body.total).to.equal(2) |
256 | 241 | ||
257 | expect(res.body.total).to.equal(2) | 242 | const block = body.data[0] |
258 | |||
259 | const block = blocks[0] | ||
260 | expect(block.byAccount.displayName).to.equal('root') | 243 | expect(block.byAccount.displayName).to.equal('root') |
261 | expect(block.byAccount.name).to.equal('root') | 244 | expect(block.byAccount.name).to.equal('root') |
262 | expect(block.blockedAccount.displayName).to.equal('user2') | 245 | expect(block.blockedAccount.displayName).to.equal('user2') |
@@ -265,12 +248,10 @@ describe('Test blocklist', function () { | |||
265 | } | 248 | } |
266 | 249 | ||
267 | { | 250 | { |
268 | const res = await getAccountBlocklistByAccount(servers[0].url, servers[0].accessToken, 1, 2, 'createdAt') | 251 | const body = await command.listMyAccountBlocklist({ start: 1, count: 2, sort: 'createdAt' }) |
269 | const blocks: AccountBlock[] = res.body.data | 252 | expect(body.total).to.equal(2) |
270 | |||
271 | expect(res.body.total).to.equal(2) | ||
272 | 253 | ||
273 | const block = blocks[0] | 254 | const block = body.data[0] |
274 | expect(block.byAccount.displayName).to.equal('root') | 255 | expect(block.byAccount.displayName).to.equal('root') |
275 | expect(block.byAccount.name).to.equal('root') | 256 | expect(block.byAccount.name).to.equal('root') |
276 | expect(block.blockedAccount.displayName).to.equal('user1') | 257 | expect(block.blockedAccount.displayName).to.equal('user1') |
@@ -335,7 +316,7 @@ describe('Test blocklist', function () { | |||
335 | }) | 316 | }) |
336 | 317 | ||
337 | it('Should unblock the remote account', async function () { | 318 | it('Should unblock the remote account', async function () { |
338 | await removeAccountFromAccountBlocklist(servers[0].url, servers[0].accessToken, 'user2@localhost:' + servers[1].port) | 319 | await command.removeFromMyBlocklist({ account: 'user2@localhost:' + servers[1].port }) |
339 | }) | 320 | }) |
340 | 321 | ||
341 | it('Should display its videos', async function () { | 322 | it('Should display its videos', async function () { |
@@ -374,7 +355,7 @@ describe('Test blocklist', function () { | |||
374 | }) | 355 | }) |
375 | 356 | ||
376 | it('Should unblock the local account', async function () { | 357 | it('Should unblock the local account', async function () { |
377 | await removeAccountFromAccountBlocklist(servers[0].url, servers[0].accessToken, 'user1') | 358 | await command.removeFromMyBlocklist({ account: 'user1' }) |
378 | }) | 359 | }) |
379 | 360 | ||
380 | it('Should display its comments', function () { | 361 | it('Should display its comments', function () { |
@@ -402,6 +383,7 @@ describe('Test blocklist', function () { | |||
402 | }) | 383 | }) |
403 | 384 | ||
404 | describe('When managing server blocklist', function () { | 385 | describe('When managing server blocklist', function () { |
386 | |||
405 | it('Should list all videos', function () { | 387 | it('Should list all videos', function () { |
406 | return checkAllVideos(servers[0].url, servers[0].accessToken) | 388 | return checkAllVideos(servers[0].url, servers[0].accessToken) |
407 | }) | 389 | }) |
@@ -411,7 +393,7 @@ describe('Test blocklist', function () { | |||
411 | }) | 393 | }) |
412 | 394 | ||
413 | it('Should block a remote server', async function () { | 395 | it('Should block a remote server', async function () { |
414 | await addServerToAccountBlocklist(servers[0].url, servers[0].accessToken, 'localhost:' + servers[1].port) | 396 | await command.addToMyBlocklist({ server: 'localhost:' + servers[1].port }) |
415 | }) | 397 | }) |
416 | 398 | ||
417 | it('Should hide its videos', async function () { | 399 | it('Should hide its videos', async function () { |
@@ -464,19 +446,17 @@ describe('Test blocklist', function () { | |||
464 | }) | 446 | }) |
465 | 447 | ||
466 | it('Should list blocked servers', async function () { | 448 | it('Should list blocked servers', async function () { |
467 | const res = await getServerBlocklistByAccount(servers[0].url, servers[0].accessToken, 0, 1, 'createdAt') | 449 | const body = await command.listMyServerBlocklist({ start: 0, count: 1, sort: 'createdAt' }) |
468 | const blocks: ServerBlock[] = res.body.data | 450 | expect(body.total).to.equal(1) |
469 | |||
470 | expect(res.body.total).to.equal(1) | ||
471 | 451 | ||
472 | const block = blocks[0] | 452 | const block = body.data[0] |
473 | expect(block.byAccount.displayName).to.equal('root') | 453 | expect(block.byAccount.displayName).to.equal('root') |
474 | expect(block.byAccount.name).to.equal('root') | 454 | expect(block.byAccount.name).to.equal('root') |
475 | expect(block.blockedServer.host).to.equal('localhost:' + servers[1].port) | 455 | expect(block.blockedServer.host).to.equal('localhost:' + servers[1].port) |
476 | }) | 456 | }) |
477 | 457 | ||
478 | it('Should unblock the remote server', async function () { | 458 | it('Should unblock the remote server', async function () { |
479 | await removeServerFromAccountBlocklist(servers[0].url, servers[0].accessToken, 'localhost:' + servers[1].port) | 459 | await command.removeFromMyBlocklist({ server: 'localhost:' + servers[1].port }) |
480 | }) | 460 | }) |
481 | 461 | ||
482 | it('Should display its videos', function () { | 462 | it('Should display its videos', function () { |
@@ -524,7 +504,7 @@ describe('Test blocklist', function () { | |||
524 | }) | 504 | }) |
525 | 505 | ||
526 | it('Should block a remote account', async function () { | 506 | it('Should block a remote account', async function () { |
527 | await addAccountToServerBlocklist(servers[0].url, servers[0].accessToken, 'user2@localhost:' + servers[1].port) | 507 | await command.addToServerBlocklist({ account: 'user2@localhost:' + servers[1].port }) |
528 | }) | 508 | }) |
529 | 509 | ||
530 | it('Should hide its videos', async function () { | 510 | it('Should hide its videos', async function () { |
@@ -540,7 +520,7 @@ describe('Test blocklist', function () { | |||
540 | }) | 520 | }) |
541 | 521 | ||
542 | it('Should block a local account', async function () { | 522 | it('Should block a local account', async function () { |
543 | await addAccountToServerBlocklist(servers[0].url, servers[0].accessToken, 'user1') | 523 | await command.addToServerBlocklist({ account: 'user1' }) |
544 | }) | 524 | }) |
545 | 525 | ||
546 | it('Should hide its videos', async function () { | 526 | it('Should hide its videos', async function () { |
@@ -598,12 +578,10 @@ describe('Test blocklist', function () { | |||
598 | 578 | ||
599 | it('Should list blocked accounts', async function () { | 579 | it('Should list blocked accounts', async function () { |
600 | { | 580 | { |
601 | const res = await getAccountBlocklistByServer(servers[0].url, servers[0].accessToken, 0, 1, 'createdAt') | 581 | const body = await command.listServerAccountBlocklist({ start: 0, count: 1, sort: 'createdAt' }) |
602 | const blocks: AccountBlock[] = res.body.data | 582 | expect(body.total).to.equal(2) |
603 | |||
604 | expect(res.body.total).to.equal(2) | ||
605 | 583 | ||
606 | const block = blocks[0] | 584 | const block = body.data[0] |
607 | expect(block.byAccount.displayName).to.equal('peertube') | 585 | expect(block.byAccount.displayName).to.equal('peertube') |
608 | expect(block.byAccount.name).to.equal('peertube') | 586 | expect(block.byAccount.name).to.equal('peertube') |
609 | expect(block.blockedAccount.displayName).to.equal('user2') | 587 | expect(block.blockedAccount.displayName).to.equal('user2') |
@@ -612,12 +590,10 @@ describe('Test blocklist', function () { | |||
612 | } | 590 | } |
613 | 591 | ||
614 | { | 592 | { |
615 | const res = await getAccountBlocklistByServer(servers[0].url, servers[0].accessToken, 1, 2, 'createdAt') | 593 | const body = await command.listServerAccountBlocklist({ start: 1, count: 2, sort: 'createdAt' }) |
616 | const blocks: AccountBlock[] = res.body.data | 594 | expect(body.total).to.equal(2) |
617 | 595 | ||
618 | expect(res.body.total).to.equal(2) | 596 | const block = body.data[0] |
619 | |||
620 | const block = blocks[0] | ||
621 | expect(block.byAccount.displayName).to.equal('peertube') | 597 | expect(block.byAccount.displayName).to.equal('peertube') |
622 | expect(block.byAccount.name).to.equal('peertube') | 598 | expect(block.byAccount.name).to.equal('peertube') |
623 | expect(block.blockedAccount.displayName).to.equal('user1') | 599 | expect(block.blockedAccount.displayName).to.equal('user1') |
@@ -627,7 +603,7 @@ describe('Test blocklist', function () { | |||
627 | }) | 603 | }) |
628 | 604 | ||
629 | it('Should unblock the remote account', async function () { | 605 | it('Should unblock the remote account', async function () { |
630 | await removeAccountFromServerBlocklist(servers[0].url, servers[0].accessToken, 'user2@localhost:' + servers[1].port) | 606 | await command.removeFromServerBlocklist({ account: 'user2@localhost:' + servers[1].port }) |
631 | }) | 607 | }) |
632 | 608 | ||
633 | it('Should display its videos', async function () { | 609 | it('Should display its videos', async function () { |
@@ -643,7 +619,7 @@ describe('Test blocklist', function () { | |||
643 | }) | 619 | }) |
644 | 620 | ||
645 | it('Should unblock the local account', async function () { | 621 | it('Should unblock the local account', async function () { |
646 | await removeAccountFromServerBlocklist(servers[0].url, servers[0].accessToken, 'user1') | 622 | await command.removeFromServerBlocklist({ account: 'user1' }) |
647 | }) | 623 | }) |
648 | 624 | ||
649 | it('Should display its comments', async function () { | 625 | it('Should display its comments', async function () { |
@@ -686,7 +662,7 @@ describe('Test blocklist', function () { | |||
686 | }) | 662 | }) |
687 | 663 | ||
688 | it('Should block a remote server', async function () { | 664 | it('Should block a remote server', async function () { |
689 | await addServerToServerBlocklist(servers[0].url, servers[0].accessToken, 'localhost:' + servers[1].port) | 665 | await command.addToServerBlocklist({ server: 'localhost:' + servers[1].port }) |
690 | }) | 666 | }) |
691 | 667 | ||
692 | it('Should hide its videos', async function () { | 668 | it('Should hide its videos', async function () { |
@@ -758,19 +734,17 @@ describe('Test blocklist', function () { | |||
758 | }) | 734 | }) |
759 | 735 | ||
760 | it('Should list blocked servers', async function () { | 736 | it('Should list blocked servers', async function () { |
761 | const res = await getServerBlocklistByServer(servers[0].url, servers[0].accessToken, 0, 1, 'createdAt') | 737 | const body = await command.listServerServerBlocklist({ start: 0, count: 1, sort: 'createdAt' }) |
762 | const blocks: ServerBlock[] = res.body.data | 738 | expect(body.total).to.equal(1) |
763 | |||
764 | expect(res.body.total).to.equal(1) | ||
765 | 739 | ||
766 | const block = blocks[0] | 740 | const block = body.data[0] |
767 | expect(block.byAccount.displayName).to.equal('peertube') | 741 | expect(block.byAccount.displayName).to.equal('peertube') |
768 | expect(block.byAccount.name).to.equal('peertube') | 742 | expect(block.byAccount.name).to.equal('peertube') |
769 | expect(block.blockedServer.host).to.equal('localhost:' + servers[1].port) | 743 | expect(block.blockedServer.host).to.equal('localhost:' + servers[1].port) |
770 | }) | 744 | }) |
771 | 745 | ||
772 | it('Should unblock the remote server', async function () { | 746 | it('Should unblock the remote server', async function () { |
773 | await removeServerFromServerBlocklist(servers[0].url, servers[0].accessToken, 'localhost:' + servers[1].port) | 747 | await command.removeFromServerBlocklist({ server: 'localhost:' + servers[1].port }) |
774 | }) | 748 | }) |
775 | 749 | ||
776 | it('Should list all videos', async function () { | 750 | it('Should list all videos', async function () { |
diff --git a/server/tests/api/notifications/comments-notifications.ts b/server/tests/api/notifications/comments-notifications.ts index d2badf237..13fcee843 100644 --- a/server/tests/api/notifications/comments-notifications.ts +++ b/server/tests/api/notifications/comments-notifications.ts | |||
@@ -3,7 +3,6 @@ | |||
3 | import 'mocha' | 3 | import 'mocha' |
4 | import * as chai from 'chai' | 4 | import * as chai from 'chai' |
5 | import { | 5 | import { |
6 | addAccountToAccountBlocklist, | ||
7 | addVideoCommentReply, | 6 | addVideoCommentReply, |
8 | addVideoCommentThread, | 7 | addVideoCommentThread, |
9 | checkCommentMention, | 8 | checkCommentMention, |
@@ -14,7 +13,6 @@ import { | |||
14 | getVideoThreadComments, | 13 | getVideoThreadComments, |
15 | MockSmtpServer, | 14 | MockSmtpServer, |
16 | prepareNotificationsTest, | 15 | prepareNotificationsTest, |
17 | removeAccountFromAccountBlocklist, | ||
18 | ServerInfo, | 16 | ServerInfo, |
19 | updateMyUser, | 17 | updateMyUser, |
20 | uploadVideo, | 18 | uploadVideo, |
@@ -86,7 +84,7 @@ describe('Test comments notifications', function () { | |||
86 | it('Should not send a new comment notification if the account is muted', async function () { | 84 | it('Should not send a new comment notification if the account is muted', async function () { |
87 | this.timeout(20000) | 85 | this.timeout(20000) |
88 | 86 | ||
89 | await addAccountToAccountBlocklist(servers[0].url, userAccessToken, 'root') | 87 | await servers[0].blocklistCommand.addToMyBlocklist({ token: userAccessToken, account: 'root' }) |
90 | 88 | ||
91 | const resVideo = await uploadVideo(servers[0].url, userAccessToken, { name: 'super video' }) | 89 | const resVideo = await uploadVideo(servers[0].url, userAccessToken, { name: 'super video' }) |
92 | const uuid = resVideo.body.video.uuid | 90 | const uuid = resVideo.body.video.uuid |
@@ -97,7 +95,7 @@ describe('Test comments notifications', function () { | |||
97 | await waitJobs(servers) | 95 | await waitJobs(servers) |
98 | await checkNewCommentOnMyVideo(baseParams, uuid, commentId, commentId, 'absence') | 96 | await checkNewCommentOnMyVideo(baseParams, uuid, commentId, commentId, 'absence') |
99 | 97 | ||
100 | await removeAccountFromAccountBlocklist(servers[0].url, userAccessToken, 'root') | 98 | await servers[0].blocklistCommand.removeFromMyBlocklist({ token: userAccessToken, account: 'root' }) |
101 | }) | 99 | }) |
102 | 100 | ||
103 | it('Should send a new comment notification after a local comment on my video', async function () { | 101 | it('Should send a new comment notification after a local comment on my video', async function () { |
@@ -244,7 +242,7 @@ describe('Test comments notifications', function () { | |||
244 | it('Should not send a new mention notification if the account is muted', async function () { | 242 | it('Should not send a new mention notification if the account is muted', async function () { |
245 | this.timeout(10000) | 243 | this.timeout(10000) |
246 | 244 | ||
247 | await addAccountToAccountBlocklist(servers[0].url, userAccessToken, 'root') | 245 | await servers[0].blocklistCommand.addToMyBlocklist({ token: userAccessToken, account: 'root' }) |
248 | 246 | ||
249 | const resVideo = await uploadVideo(servers[0].url, servers[0].accessToken, { name: 'super video' }) | 247 | const resVideo = await uploadVideo(servers[0].url, servers[0].accessToken, { name: 'super video' }) |
250 | const uuid = resVideo.body.video.uuid | 248 | const uuid = resVideo.body.video.uuid |
@@ -255,7 +253,7 @@ describe('Test comments notifications', function () { | |||
255 | await waitJobs(servers) | 253 | await waitJobs(servers) |
256 | await checkCommentMention(baseParams, uuid, commentId, commentId, 'super root name', 'absence') | 254 | await checkCommentMention(baseParams, uuid, commentId, commentId, 'super root name', 'absence') |
257 | 255 | ||
258 | await removeAccountFromAccountBlocklist(servers[0].url, userAccessToken, 'root') | 256 | await servers[0].blocklistCommand.removeFromMyBlocklist({ token: userAccessToken, account: 'root' }) |
259 | }) | 257 | }) |
260 | 258 | ||
261 | it('Should not send a new mention notification if the remote account mention a local account', async function () { | 259 | it('Should not send a new mention notification if the remote account mention a local account', async function () { |
diff --git a/server/tests/api/videos/video-playlists.ts b/server/tests/api/videos/video-playlists.ts index 28f68dcfe..90189721a 100644 --- a/server/tests/api/videos/video-playlists.ts +++ b/server/tests/api/videos/video-playlists.ts | |||
@@ -4,10 +4,6 @@ import 'mocha' | |||
4 | import * as chai from 'chai' | 4 | import * as chai from 'chai' |
5 | import { HttpStatusCode } from '@shared/core-utils' | 5 | import { HttpStatusCode } from '@shared/core-utils' |
6 | import { | 6 | import { |
7 | addAccountToAccountBlocklist, | ||
8 | addAccountToServerBlocklist, | ||
9 | addServerToAccountBlocklist, | ||
10 | addServerToServerBlocklist, | ||
11 | addVideoChannel, | 7 | addVideoChannel, |
12 | addVideoInPlaylist, | 8 | addVideoInPlaylist, |
13 | addVideoToBlacklist, | 9 | addVideoToBlacklist, |
@@ -31,10 +27,6 @@ import { | |||
31 | getVideoPlaylistPrivacies, | 27 | getVideoPlaylistPrivacies, |
32 | getVideoPlaylistsList, | 28 | getVideoPlaylistsList, |
33 | getVideoPlaylistWithToken, | 29 | getVideoPlaylistWithToken, |
34 | removeAccountFromAccountBlocklist, | ||
35 | removeAccountFromServerBlocklist, | ||
36 | removeServerFromAccountBlocklist, | ||
37 | removeServerFromServerBlocklist, | ||
38 | removeUser, | 30 | removeUser, |
39 | removeVideoFromBlacklist, | 31 | removeVideoFromBlacklist, |
40 | removeVideoFromPlaylist, | 32 | removeVideoFromPlaylist, |
@@ -760,56 +752,58 @@ describe('Test video playlists', function () { | |||
760 | it('Should update the element type if the account or server of the video is blocked', async function () { | 752 | it('Should update the element type if the account or server of the video is blocked', async function () { |
761 | this.timeout(90000) | 753 | this.timeout(90000) |
762 | 754 | ||
755 | const command = servers[0].blocklistCommand | ||
756 | |||
763 | const name = 'video 90' | 757 | const name = 'video 90' |
764 | const position = 2 | 758 | const position = 2 |
765 | 759 | ||
766 | { | 760 | { |
767 | await addAccountToAccountBlocklist(servers[0].url, userAccessTokenServer1, 'root@localhost:' + servers[1].port) | 761 | await command.addToMyBlocklist({ token: userAccessTokenServer1, account: 'root@localhost:' + servers[1].port }) |
768 | await waitJobs(servers) | 762 | await waitJobs(servers) |
769 | 763 | ||
770 | await checkPlaylistElementType(groupUser1, playlistServer1UUID2, VideoPlaylistElementType.UNAVAILABLE, position, name, 3) | 764 | await checkPlaylistElementType(groupUser1, playlistServer1UUID2, VideoPlaylistElementType.UNAVAILABLE, position, name, 3) |
771 | await checkPlaylistElementType(group2, playlistServer1UUID2, VideoPlaylistElementType.REGULAR, position, name, 3) | 765 | await checkPlaylistElementType(group2, playlistServer1UUID2, VideoPlaylistElementType.REGULAR, position, name, 3) |
772 | 766 | ||
773 | await removeAccountFromAccountBlocklist(servers[0].url, userAccessTokenServer1, 'root@localhost:' + servers[1].port) | 767 | await command.removeFromMyBlocklist({ token: userAccessTokenServer1, account: 'root@localhost:' + servers[1].port }) |
774 | await waitJobs(servers) | 768 | await waitJobs(servers) |
775 | 769 | ||
776 | await checkPlaylistElementType(group2, playlistServer1UUID2, VideoPlaylistElementType.REGULAR, position, name, 3) | 770 | await checkPlaylistElementType(group2, playlistServer1UUID2, VideoPlaylistElementType.REGULAR, position, name, 3) |
777 | } | 771 | } |
778 | 772 | ||
779 | { | 773 | { |
780 | await addServerToAccountBlocklist(servers[0].url, userAccessTokenServer1, 'localhost:' + servers[1].port) | 774 | await command.addToMyBlocklist({ token: userAccessTokenServer1, server: 'localhost:' + servers[1].port }) |
781 | await waitJobs(servers) | 775 | await waitJobs(servers) |
782 | 776 | ||
783 | await checkPlaylistElementType(groupUser1, playlistServer1UUID2, VideoPlaylistElementType.UNAVAILABLE, position, name, 3) | 777 | await checkPlaylistElementType(groupUser1, playlistServer1UUID2, VideoPlaylistElementType.UNAVAILABLE, position, name, 3) |
784 | await checkPlaylistElementType(group2, playlistServer1UUID2, VideoPlaylistElementType.REGULAR, position, name, 3) | 778 | await checkPlaylistElementType(group2, playlistServer1UUID2, VideoPlaylistElementType.REGULAR, position, name, 3) |
785 | 779 | ||
786 | await removeServerFromAccountBlocklist(servers[0].url, userAccessTokenServer1, 'localhost:' + servers[1].port) | 780 | await command.removeFromMyBlocklist({ token: userAccessTokenServer1, server: 'localhost:' + servers[1].port }) |
787 | await waitJobs(servers) | 781 | await waitJobs(servers) |
788 | 782 | ||
789 | await checkPlaylistElementType(group2, playlistServer1UUID2, VideoPlaylistElementType.REGULAR, position, name, 3) | 783 | await checkPlaylistElementType(group2, playlistServer1UUID2, VideoPlaylistElementType.REGULAR, position, name, 3) |
790 | } | 784 | } |
791 | 785 | ||
792 | { | 786 | { |
793 | await addAccountToServerBlocklist(servers[0].url, servers[0].accessToken, 'root@localhost:' + servers[1].port) | 787 | await command.addToServerBlocklist({ account: 'root@localhost:' + servers[1].port }) |
794 | await waitJobs(servers) | 788 | await waitJobs(servers) |
795 | 789 | ||
796 | await checkPlaylistElementType(groupUser1, playlistServer1UUID2, VideoPlaylistElementType.UNAVAILABLE, position, name, 3) | 790 | await checkPlaylistElementType(groupUser1, playlistServer1UUID2, VideoPlaylistElementType.UNAVAILABLE, position, name, 3) |
797 | await checkPlaylistElementType(group2, playlistServer1UUID2, VideoPlaylistElementType.REGULAR, position, name, 3) | 791 | await checkPlaylistElementType(group2, playlistServer1UUID2, VideoPlaylistElementType.REGULAR, position, name, 3) |
798 | 792 | ||
799 | await removeAccountFromServerBlocklist(servers[0].url, servers[0].accessToken, 'root@localhost:' + servers[1].port) | 793 | await command.removeFromServerBlocklist({ account: 'root@localhost:' + servers[1].port }) |
800 | await waitJobs(servers) | 794 | await waitJobs(servers) |
801 | 795 | ||
802 | await checkPlaylistElementType(group2, playlistServer1UUID2, VideoPlaylistElementType.REGULAR, position, name, 3) | 796 | await checkPlaylistElementType(group2, playlistServer1UUID2, VideoPlaylistElementType.REGULAR, position, name, 3) |
803 | } | 797 | } |
804 | 798 | ||
805 | { | 799 | { |
806 | await addServerToServerBlocklist(servers[0].url, servers[0].accessToken, 'localhost:' + servers[1].port) | 800 | await command.addToServerBlocklist({ server: 'localhost:' + servers[1].port }) |
807 | await waitJobs(servers) | 801 | await waitJobs(servers) |
808 | 802 | ||
809 | await checkPlaylistElementType(groupUser1, playlistServer1UUID2, VideoPlaylistElementType.UNAVAILABLE, position, name, 3) | 803 | await checkPlaylistElementType(groupUser1, playlistServer1UUID2, VideoPlaylistElementType.UNAVAILABLE, position, name, 3) |
810 | await checkPlaylistElementType(group2, playlistServer1UUID2, VideoPlaylistElementType.REGULAR, position, name, 3) | 804 | await checkPlaylistElementType(group2, playlistServer1UUID2, VideoPlaylistElementType.REGULAR, position, name, 3) |
811 | 805 | ||
812 | await removeServerFromServerBlocklist(servers[0].url, servers[0].accessToken, 'localhost:' + servers[1].port) | 806 | await command.removeFromServerBlocklist({ server: 'localhost:' + servers[1].port }) |
813 | await waitJobs(servers) | 807 | await waitJobs(servers) |
814 | 808 | ||
815 | await checkPlaylistElementType(group2, playlistServer1UUID2, VideoPlaylistElementType.REGULAR, position, name, 3) | 809 | await checkPlaylistElementType(group2, playlistServer1UUID2, VideoPlaylistElementType.REGULAR, position, name, 3) |
diff --git a/server/tests/api/videos/videos-overview.ts b/server/tests/api/videos/videos-overview.ts index b3ab9e070..ccbc6f4a4 100644 --- a/server/tests/api/videos/videos-overview.ts +++ b/server/tests/api/videos/videos-overview.ts | |||
@@ -3,7 +3,6 @@ | |||
3 | import 'mocha' | 3 | import 'mocha' |
4 | import * as chai from 'chai' | 4 | import * as chai from 'chai' |
5 | import { | 5 | import { |
6 | addAccountToAccountBlocklist, | ||
7 | cleanupTests, | 6 | cleanupTests, |
8 | flushAndRunServer, | 7 | flushAndRunServer, |
9 | generateUserAccessToken, | 8 | generateUserAccessToken, |
@@ -115,7 +114,7 @@ describe('Test a videos overview', function () { | |||
115 | it('Should hide muted accounts', async function () { | 114 | it('Should hide muted accounts', async function () { |
116 | const token = await generateUserAccessToken(server, 'choco') | 115 | const token = await generateUserAccessToken(server, 'choco') |
117 | 116 | ||
118 | await addAccountToAccountBlocklist(server.url, token, 'root@' + server.host) | 117 | await server.blocklistCommand.addToMyBlocklist({ token, account: 'root@' + server.host }) |
119 | 118 | ||
120 | { | 119 | { |
121 | const body = await server.overviewsCommand.getVideos({ page: 1 }) | 120 | const body = await server.overviewsCommand.getVideos({ page: 1 }) |
diff --git a/server/tests/external-plugins/auto-mute.ts b/server/tests/external-plugins/auto-mute.ts index 8fcf94452..f86c83808 100644 --- a/server/tests/external-plugins/auto-mute.ts +++ b/server/tests/external-plugins/auto-mute.ts | |||
@@ -4,8 +4,6 @@ import 'mocha' | |||
4 | import { expect } from 'chai' | 4 | import { expect } from 'chai' |
5 | import { HttpStatusCode } from '@shared/core-utils' | 5 | import { HttpStatusCode } from '@shared/core-utils' |
6 | import { | 6 | import { |
7 | addAccountToServerBlocklist, | ||
8 | addServerToAccountBlocklist, | ||
9 | cleanupTests, | 7 | cleanupTests, |
10 | doubleFollow, | 8 | doubleFollow, |
11 | flushAndRunMultipleServers, | 9 | flushAndRunMultipleServers, |
@@ -13,7 +11,6 @@ import { | |||
13 | killallServers, | 11 | killallServers, |
14 | makeGetRequest, | 12 | makeGetRequest, |
15 | MockBlocklist, | 13 | MockBlocklist, |
16 | removeAccountFromServerBlocklist, | ||
17 | reRunServer, | 14 | reRunServer, |
18 | ServerInfo, | 15 | ServerInfo, |
19 | setAccessTokensToServers, | 16 | setAccessTokensToServers, |
@@ -147,7 +144,7 @@ describe('Official plugin auto-mute', function () { | |||
147 | expect(res.body.total).to.equal(1) | 144 | expect(res.body.total).to.equal(1) |
148 | } | 145 | } |
149 | 146 | ||
150 | await removeAccountFromServerBlocklist(servers[0].url, servers[0].accessToken, account) | 147 | await servers[0].blocklistCommand.removeFromServerBlocklist({ account }) |
151 | 148 | ||
152 | { | 149 | { |
153 | const res = await getVideosList(servers[0].url) | 150 | const res = await getVideosList(servers[0].url) |
@@ -201,8 +198,8 @@ describe('Official plugin auto-mute', function () { | |||
201 | } | 198 | } |
202 | }) | 199 | }) |
203 | 200 | ||
204 | await addAccountToServerBlocklist(servers[0].url, servers[0].accessToken, 'root@localhost:' + servers[1].port) | 201 | await servers[0].blocklistCommand.addToServerBlocklist({ account: 'root@localhost:' + servers[1].port }) |
205 | await addServerToAccountBlocklist(servers[0].url, servers[0].accessToken, 'localhost:' + servers[1].port) | 202 | await servers[0].blocklistCommand.addToMyBlocklist({ server: 'localhost:' + servers[1].port }) |
206 | 203 | ||
207 | const res = await makeGetRequest({ | 204 | const res = await makeGetRequest({ |
208 | url: servers[0].url, | 205 | url: servers[0].url, |
diff --git a/server/tests/feeds/feeds.ts b/server/tests/feeds/feeds.ts index 4d29a2e39..17efc666d 100644 --- a/server/tests/feeds/feeds.ts +++ b/server/tests/feeds/feeds.ts | |||
@@ -3,16 +3,10 @@ | |||
3 | import 'mocha' | 3 | import 'mocha' |
4 | import * as chai from 'chai' | 4 | import * as chai from 'chai' |
5 | import * as xmlParser from 'fast-xml-parser' | 5 | import * as xmlParser from 'fast-xml-parser' |
6 | import { HttpStatusCode } from '@shared/core-utils' | ||
6 | import { | 7 | import { |
7 | addAccountToAccountBlocklist, | 8 | addUserSubscription, |
8 | addAccountToServerBlocklist, | 9 | addVideoCommentThread, |
9 | removeAccountFromServerBlocklist | ||
10 | } from '@shared/extra-utils/users/blocklist' | ||
11 | import { addUserSubscription, listUserSubscriptionVideos } from '@shared/extra-utils/users/user-subscriptions' | ||
12 | import { VideoPrivacy } from '@shared/models' | ||
13 | import { ScopedToken } from '@shared/models/users/user-scoped-token' | ||
14 | import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes' | ||
15 | import { | ||
16 | cleanupTests, | 10 | cleanupTests, |
17 | createUser, | 11 | createUser, |
18 | doubleFollow, | 12 | doubleFollow, |
@@ -20,16 +14,17 @@ import { | |||
20 | flushAndRunServer, | 14 | flushAndRunServer, |
21 | getMyUserInformation, | 15 | getMyUserInformation, |
22 | getUserScopedTokens, | 16 | getUserScopedTokens, |
17 | listUserSubscriptionVideos, | ||
23 | renewUserScopedTokens, | 18 | renewUserScopedTokens, |
24 | ServerInfo, | 19 | ServerInfo, |
25 | setAccessTokensToServers, | 20 | setAccessTokensToServers, |
26 | uploadVideo, | 21 | uploadVideo, |
27 | uploadVideoAndGetId, | 22 | uploadVideoAndGetId, |
28 | userLogin | 23 | userLogin, |
29 | } from '../../../shared/extra-utils' | 24 | waitJobs |
30 | import { waitJobs } from '../../../shared/extra-utils/server/jobs' | 25 | } from '@shared/extra-utils' |
31 | import { addVideoCommentThread } from '../../../shared/extra-utils/videos/video-comments' | 26 | import { User, VideoPrivacy } from '@shared/models' |
32 | import { User } from '../../../shared/models/users' | 27 | import { ScopedToken } from '@shared/models/users/user-scoped-token' |
33 | 28 | ||
34 | chai.use(require('chai-xml')) | 29 | chai.use(require('chai-xml')) |
35 | chai.use(require('chai-json-schema')) | 30 | chai.use(require('chai-json-schema')) |
@@ -271,7 +266,7 @@ describe('Test syndication feeds', () => { | |||
271 | 266 | ||
272 | const remoteHandle = 'root@localhost:' + servers[0].port | 267 | const remoteHandle = 'root@localhost:' + servers[0].port |
273 | 268 | ||
274 | await addAccountToServerBlocklist(servers[1].url, servers[1].accessToken, remoteHandle) | 269 | await servers[1].blocklistCommand.addToServerBlocklist({ account: remoteHandle }) |
275 | 270 | ||
276 | { | 271 | { |
277 | const json = await servers[1].feedCommand.getJSON({ feed: 'video-comments', query: { version: 2 } }) | 272 | const json = await servers[1].feedCommand.getJSON({ feed: 'video-comments', query: { version: 2 } }) |
@@ -279,7 +274,7 @@ describe('Test syndication feeds', () => { | |||
279 | expect(jsonObj.items.length).to.be.equal(0) | 274 | expect(jsonObj.items.length).to.be.equal(0) |
280 | } | 275 | } |
281 | 276 | ||
282 | await removeAccountFromServerBlocklist(servers[1].url, servers[1].accessToken, remoteHandle) | 277 | await servers[1].blocklistCommand.removeFromServerBlocklist({ account: remoteHandle }) |
283 | 278 | ||
284 | { | 279 | { |
285 | const videoUUID = (await uploadVideoAndGetId({ server: servers[1], videoName: 'server 2' })).uuid | 280 | const videoUUID = (await uploadVideoAndGetId({ server: servers[1], videoName: 'server 2' })).uuid |
@@ -292,7 +287,7 @@ describe('Test syndication feeds', () => { | |||
292 | expect(jsonObj.items.length).to.be.equal(3) | 287 | expect(jsonObj.items.length).to.be.equal(3) |
293 | } | 288 | } |
294 | 289 | ||
295 | await addAccountToAccountBlocklist(servers[1].url, servers[1].accessToken, remoteHandle) | 290 | await servers[1].blocklistCommand.addToMyBlocklist({ account: remoteHandle }) |
296 | 291 | ||
297 | { | 292 | { |
298 | const json = await servers[1].feedCommand.getJSON({ feed: 'video-comments', query: { version: 4 } }) | 293 | const json = await servers[1].feedCommand.getJSON({ feed: 'video-comments', query: { version: 4 } }) |
diff --git a/shared/extra-utils/server/servers.ts b/shared/extra-utils/server/servers.ts index c2cab9818..3c709666d 100644 --- a/shared/extra-utils/server/servers.ts +++ b/shared/extra-utils/server/servers.ts | |||
@@ -17,7 +17,7 @@ import { OverviewsCommand } from '../overviews' | |||
17 | import { makeGetRequest } from '../requests/requests' | 17 | import { makeGetRequest } from '../requests/requests' |
18 | import { SearchCommand } from '../search' | 18 | import { SearchCommand } from '../search' |
19 | import { SocketIOCommand } from '../socket' | 19 | import { SocketIOCommand } from '../socket' |
20 | import { AccountsCommand } from '../users' | 20 | import { AccountsCommand, BlocklistCommand } from '../users' |
21 | import { ConfigCommand } from './config-command' | 21 | import { ConfigCommand } from './config-command' |
22 | import { ContactFormCommand } from './contact-form-command' | 22 | import { ContactFormCommand } from './contact-form-command' |
23 | import { DebugCommand } from './debug-command' | 23 | import { DebugCommand } from './debug-command' |
@@ -97,6 +97,7 @@ interface ServerInfo { | |||
97 | configCommand?: ConfigCommand | 97 | configCommand?: ConfigCommand |
98 | socketIOCommand?: SocketIOCommand | 98 | socketIOCommand?: SocketIOCommand |
99 | accountsCommand?: AccountsCommand | 99 | accountsCommand?: AccountsCommand |
100 | blocklistCommand?: BlocklistCommand | ||
100 | } | 101 | } |
101 | 102 | ||
102 | function parallelTests () { | 103 | function parallelTests () { |
@@ -320,6 +321,7 @@ async function runServer (server: ServerInfo, configOverrideArg?: any, args = [] | |||
320 | server.configCommand = new ConfigCommand(server) | 321 | server.configCommand = new ConfigCommand(server) |
321 | server.socketIOCommand = new SocketIOCommand(server) | 322 | server.socketIOCommand = new SocketIOCommand(server) |
322 | server.accountsCommand = new AccountsCommand(server) | 323 | server.accountsCommand = new AccountsCommand(server) |
324 | server.blocklistCommand = new BlocklistCommand(server) | ||
323 | 325 | ||
324 | res(server) | 326 | res(server) |
325 | }) | 327 | }) |
diff --git a/shared/extra-utils/socket/socket-io-command.ts b/shared/extra-utils/socket/socket-io-command.ts index 545561bed..c277ead28 100644 --- a/shared/extra-utils/socket/socket-io-command.ts +++ b/shared/extra-utils/socket/socket-io-command.ts | |||
@@ -5,7 +5,7 @@ export class SocketIOCommand extends AbstractCommand { | |||
5 | 5 | ||
6 | getUserNotificationSocket (options: OverrideCommandOptions = {}) { | 6 | getUserNotificationSocket (options: OverrideCommandOptions = {}) { |
7 | return io(this.server.url + '/user-notifications', { | 7 | return io(this.server.url + '/user-notifications', { |
8 | query: { accessToken: this.server.accessToken } | 8 | query: { accessToken: options.token ?? this.server.accessToken } |
9 | }) | 9 | }) |
10 | } | 10 | } |
11 | 11 | ||
diff --git a/shared/extra-utils/users/blocklist-command.ts b/shared/extra-utils/users/blocklist-command.ts new file mode 100644 index 000000000..96afdc3fd --- /dev/null +++ b/shared/extra-utils/users/blocklist-command.ts | |||
@@ -0,0 +1,135 @@ | |||
1 | /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ | ||
2 | |||
3 | import { HttpStatusCode } from '@shared/core-utils' | ||
4 | import { AccountBlock, ResultList, ServerBlock } from '@shared/models' | ||
5 | import { AbstractCommand, OverrideCommandOptions } from '../shared' | ||
6 | |||
7 | type ListBlocklistOptions = OverrideCommandOptions & { | ||
8 | start: number | ||
9 | count: number | ||
10 | sort: string // default -createdAt | ||
11 | } | ||
12 | |||
13 | export class BlocklistCommand extends AbstractCommand { | ||
14 | |||
15 | listMyAccountBlocklist (options: ListBlocklistOptions) { | ||
16 | const path = '/api/v1/users/me/blocklist/accounts' | ||
17 | |||
18 | return this.listBlocklist<AccountBlock>(options, path) | ||
19 | } | ||
20 | |||
21 | listMyServerBlocklist (options: ListBlocklistOptions) { | ||
22 | const path = '/api/v1/users/me/blocklist/servers' | ||
23 | |||
24 | return this.listBlocklist<ServerBlock>(options, path) | ||
25 | } | ||
26 | |||
27 | listServerAccountBlocklist (options: ListBlocklistOptions) { | ||
28 | const path = '/api/v1/server/blocklist/accounts' | ||
29 | |||
30 | return this.listBlocklist<AccountBlock>(options, path) | ||
31 | } | ||
32 | |||
33 | listServerServerBlocklist (options: ListBlocklistOptions) { | ||
34 | const path = '/api/v1/server/blocklist/servers' | ||
35 | |||
36 | return this.listBlocklist<ServerBlock>(options, path) | ||
37 | } | ||
38 | |||
39 | // --------------------------------------------------------------------------- | ||
40 | |||
41 | addToMyBlocklist (options: OverrideCommandOptions & { | ||
42 | account?: string | ||
43 | server?: string | ||
44 | }) { | ||
45 | const { account, server } = options | ||
46 | |||
47 | const path = account | ||
48 | ? '/api/v1/users/me/blocklist/accounts' | ||
49 | : '/api/v1/users/me/blocklist/servers' | ||
50 | |||
51 | return this.postBodyRequest({ | ||
52 | ...options, | ||
53 | |||
54 | path, | ||
55 | fields: { | ||
56 | accountName: account, | ||
57 | host: server | ||
58 | }, | ||
59 | defaultExpectedStatus: HttpStatusCode.NO_CONTENT_204 | ||
60 | }) | ||
61 | } | ||
62 | |||
63 | addToServerBlocklist (options: OverrideCommandOptions & { | ||
64 | account?: string | ||
65 | server?: string | ||
66 | }) { | ||
67 | const { account, server } = options | ||
68 | |||
69 | const path = account | ||
70 | ? '/api/v1/server/blocklist/accounts' | ||
71 | : '/api/v1/server/blocklist/servers' | ||
72 | |||
73 | return this.postBodyRequest({ | ||
74 | ...options, | ||
75 | |||
76 | path, | ||
77 | fields: { | ||
78 | accountName: account, | ||
79 | host: server | ||
80 | }, | ||
81 | defaultExpectedStatus: HttpStatusCode.NO_CONTENT_204 | ||
82 | }) | ||
83 | } | ||
84 | |||
85 | // --------------------------------------------------------------------------- | ||
86 | |||
87 | removeFromMyBlocklist (options: OverrideCommandOptions & { | ||
88 | account?: string | ||
89 | server?: string | ||
90 | }) { | ||
91 | const { account, server } = options | ||
92 | |||
93 | const path = account | ||
94 | ? '/api/v1/users/me/blocklist/accounts/' + account | ||
95 | : '/api/v1/users/me/blocklist/servers/' + server | ||
96 | |||
97 | return this.deleteRequest({ | ||
98 | ...options, | ||
99 | |||
100 | path, | ||
101 | defaultExpectedStatus: HttpStatusCode.NO_CONTENT_204 | ||
102 | }) | ||
103 | } | ||
104 | |||
105 | removeFromServerBlocklist (options: OverrideCommandOptions & { | ||
106 | account?: string | ||
107 | server?: string | ||
108 | }) { | ||
109 | const { account, server } = options | ||
110 | |||
111 | const path = account | ||
112 | ? '/api/v1/server/blocklist/accounts/' + account | ||
113 | : '/api/v1/server/blocklist/servers/' + server | ||
114 | |||
115 | return this.deleteRequest({ | ||
116 | ...options, | ||
117 | |||
118 | path, | ||
119 | defaultExpectedStatus: HttpStatusCode.NO_CONTENT_204 | ||
120 | }) | ||
121 | } | ||
122 | |||
123 | private listBlocklist <T> (options: ListBlocklistOptions, path: string) { | ||
124 | const { start, count, sort = '-createdAt' } = options | ||
125 | |||
126 | return this.getRequestBody<ResultList<T>>({ | ||
127 | ...options, | ||
128 | |||
129 | path, | ||
130 | query: { start, count, sort }, | ||
131 | defaultExpectedStatus: HttpStatusCode.OK_200 | ||
132 | }) | ||
133 | } | ||
134 | |||
135 | } | ||
diff --git a/shared/extra-utils/users/blocklist.ts b/shared/extra-utils/users/blocklist.ts deleted file mode 100644 index bdf7ee58a..000000000 --- a/shared/extra-utils/users/blocklist.ts +++ /dev/null | |||
@@ -1,238 +0,0 @@ | |||
1 | /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ | ||
2 | |||
3 | import { makeGetRequest, makeDeleteRequest, makePostBodyRequest } from '../requests/requests' | ||
4 | import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes' | ||
5 | |||
6 | function getAccountBlocklistByAccount ( | ||
7 | url: string, | ||
8 | token: string, | ||
9 | start: number, | ||
10 | count: number, | ||
11 | sort = '-createdAt', | ||
12 | statusCodeExpected = HttpStatusCode.OK_200 | ||
13 | ) { | ||
14 | const path = '/api/v1/users/me/blocklist/accounts' | ||
15 | |||
16 | return makeGetRequest({ | ||
17 | url, | ||
18 | token, | ||
19 | query: { start, count, sort }, | ||
20 | path, | ||
21 | statusCodeExpected | ||
22 | }) | ||
23 | } | ||
24 | |||
25 | function addAccountToAccountBlocklist ( | ||
26 | url: string, | ||
27 | token: string, | ||
28 | accountToBlock: string, | ||
29 | statusCodeExpected = HttpStatusCode.NO_CONTENT_204 | ||
30 | ) { | ||
31 | const path = '/api/v1/users/me/blocklist/accounts' | ||
32 | |||
33 | return makePostBodyRequest({ | ||
34 | url, | ||
35 | path, | ||
36 | token, | ||
37 | fields: { | ||
38 | accountName: accountToBlock | ||
39 | }, | ||
40 | statusCodeExpected | ||
41 | }) | ||
42 | } | ||
43 | |||
44 | function removeAccountFromAccountBlocklist ( | ||
45 | url: string, | ||
46 | token: string, | ||
47 | accountToUnblock: string, | ||
48 | statusCodeExpected = HttpStatusCode.NO_CONTENT_204 | ||
49 | ) { | ||
50 | const path = '/api/v1/users/me/blocklist/accounts/' + accountToUnblock | ||
51 | |||
52 | return makeDeleteRequest({ | ||
53 | url, | ||
54 | path, | ||
55 | token, | ||
56 | statusCodeExpected | ||
57 | }) | ||
58 | } | ||
59 | |||
60 | function getServerBlocklistByAccount ( | ||
61 | url: string, | ||
62 | token: string, | ||
63 | start: number, | ||
64 | count: number, | ||
65 | sort = '-createdAt', | ||
66 | statusCodeExpected = HttpStatusCode.OK_200 | ||
67 | ) { | ||
68 | const path = '/api/v1/users/me/blocklist/servers' | ||
69 | |||
70 | return makeGetRequest({ | ||
71 | url, | ||
72 | token, | ||
73 | query: { start, count, sort }, | ||
74 | path, | ||
75 | statusCodeExpected | ||
76 | }) | ||
77 | } | ||
78 | |||
79 | function addServerToAccountBlocklist ( | ||
80 | url: string, | ||
81 | token: string, | ||
82 | serverToBlock: string, | ||
83 | statusCodeExpected = HttpStatusCode.NO_CONTENT_204 | ||
84 | ) { | ||
85 | const path = '/api/v1/users/me/blocklist/servers' | ||
86 | |||
87 | return makePostBodyRequest({ | ||
88 | url, | ||
89 | path, | ||
90 | token, | ||
91 | fields: { | ||
92 | host: serverToBlock | ||
93 | }, | ||
94 | statusCodeExpected | ||
95 | }) | ||
96 | } | ||
97 | |||
98 | function removeServerFromAccountBlocklist ( | ||
99 | url: string, | ||
100 | token: string, | ||
101 | serverToBlock: string, | ||
102 | statusCodeExpected = HttpStatusCode.NO_CONTENT_204 | ||
103 | ) { | ||
104 | const path = '/api/v1/users/me/blocklist/servers/' + serverToBlock | ||
105 | |||
106 | return makeDeleteRequest({ | ||
107 | url, | ||
108 | path, | ||
109 | token, | ||
110 | statusCodeExpected | ||
111 | }) | ||
112 | } | ||
113 | |||
114 | function getAccountBlocklistByServer ( | ||
115 | url: string, | ||
116 | token: string, | ||
117 | start: number, | ||
118 | count: number, | ||
119 | sort = '-createdAt', | ||
120 | statusCodeExpected = HttpStatusCode.OK_200 | ||
121 | ) { | ||
122 | const path = '/api/v1/server/blocklist/accounts' | ||
123 | |||
124 | return makeGetRequest({ | ||
125 | url, | ||
126 | token, | ||
127 | query: { start, count, sort }, | ||
128 | path, | ||
129 | statusCodeExpected | ||
130 | }) | ||
131 | } | ||
132 | |||
133 | function addAccountToServerBlocklist ( | ||
134 | url: string, | ||
135 | token: string, | ||
136 | accountToBlock: string, | ||
137 | statusCodeExpected = HttpStatusCode.NO_CONTENT_204 | ||
138 | ) { | ||
139 | const path = '/api/v1/server/blocklist/accounts' | ||
140 | |||
141 | return makePostBodyRequest({ | ||
142 | url, | ||
143 | path, | ||
144 | token, | ||
145 | fields: { | ||
146 | accountName: accountToBlock | ||
147 | }, | ||
148 | statusCodeExpected | ||
149 | }) | ||
150 | } | ||
151 | |||
152 | function removeAccountFromServerBlocklist ( | ||
153 | url: string, | ||
154 | token: string, | ||
155 | accountToUnblock: string, | ||
156 | statusCodeExpected = HttpStatusCode.NO_CONTENT_204 | ||
157 | ) { | ||
158 | const path = '/api/v1/server/blocklist/accounts/' + accountToUnblock | ||
159 | |||
160 | return makeDeleteRequest({ | ||
161 | url, | ||
162 | path, | ||
163 | token, | ||
164 | statusCodeExpected | ||
165 | }) | ||
166 | } | ||
167 | |||
168 | function getServerBlocklistByServer ( | ||
169 | url: string, | ||
170 | token: string, | ||
171 | start: number, | ||
172 | count: number, | ||
173 | sort = '-createdAt', | ||
174 | statusCodeExpected = HttpStatusCode.OK_200 | ||
175 | ) { | ||
176 | const path = '/api/v1/server/blocklist/servers' | ||
177 | |||
178 | return makeGetRequest({ | ||
179 | url, | ||
180 | token, | ||
181 | query: { start, count, sort }, | ||
182 | path, | ||
183 | statusCodeExpected | ||
184 | }) | ||
185 | } | ||
186 | |||
187 | function addServerToServerBlocklist ( | ||
188 | url: string, | ||
189 | token: string, | ||
190 | serverToBlock: string, | ||
191 | statusCodeExpected = HttpStatusCode.NO_CONTENT_204 | ||
192 | ) { | ||
193 | const path = '/api/v1/server/blocklist/servers' | ||
194 | |||
195 | return makePostBodyRequest({ | ||
196 | url, | ||
197 | path, | ||
198 | token, | ||
199 | fields: { | ||
200 | host: serverToBlock | ||
201 | }, | ||
202 | statusCodeExpected | ||
203 | }) | ||
204 | } | ||
205 | |||
206 | function removeServerFromServerBlocklist ( | ||
207 | url: string, | ||
208 | token: string, | ||
209 | serverToBlock: string, | ||
210 | statusCodeExpected = HttpStatusCode.NO_CONTENT_204 | ||
211 | ) { | ||
212 | const path = '/api/v1/server/blocklist/servers/' + serverToBlock | ||
213 | |||
214 | return makeDeleteRequest({ | ||
215 | url, | ||
216 | path, | ||
217 | token, | ||
218 | statusCodeExpected | ||
219 | }) | ||
220 | } | ||
221 | |||
222 | // --------------------------------------------------------------------------- | ||
223 | |||
224 | export { | ||
225 | getAccountBlocklistByAccount, | ||
226 | addAccountToAccountBlocklist, | ||
227 | removeAccountFromAccountBlocklist, | ||
228 | getServerBlocklistByAccount, | ||
229 | addServerToAccountBlocklist, | ||
230 | removeServerFromAccountBlocklist, | ||
231 | |||
232 | getAccountBlocklistByServer, | ||
233 | addAccountToServerBlocklist, | ||
234 | removeAccountFromServerBlocklist, | ||
235 | getServerBlocklistByServer, | ||
236 | addServerToServerBlocklist, | ||
237 | removeServerFromServerBlocklist | ||
238 | } | ||
diff --git a/shared/extra-utils/users/index.ts b/shared/extra-utils/users/index.ts index b3387ed8a..ea5dbbf14 100644 --- a/shared/extra-utils/users/index.ts +++ b/shared/extra-utils/users/index.ts | |||
@@ -1,7 +1,7 @@ | |||
1 | export * from './accounts' | ||
2 | export * from './accounts-command' | 1 | export * from './accounts-command' |
2 | export * from './accounts' | ||
3 | export * from './blocklist-command' | ||
3 | 4 | ||
4 | export * from './blocklist' | ||
5 | export * from './login' | 5 | export * from './login' |
6 | export * from './user-notifications' | 6 | export * from './user-notifications' |
7 | export * from './user-subscriptions' | 7 | export * from './user-subscriptions' |