diff options
Diffstat (limited to 'server/tests/feeds/feeds.ts')
-rw-r--r-- | server/tests/feeds/feeds.ts | 53 |
1 files changed, 35 insertions, 18 deletions
diff --git a/server/tests/feeds/feeds.ts b/server/tests/feeds/feeds.ts index 175ea9102..92a468192 100644 --- a/server/tests/feeds/feeds.ts +++ b/server/tests/feeds/feeds.ts | |||
@@ -8,28 +8,29 @@ import { | |||
8 | addAccountToServerBlocklist, | 8 | addAccountToServerBlocklist, |
9 | removeAccountFromServerBlocklist | 9 | removeAccountFromServerBlocklist |
10 | } from '@shared/extra-utils/users/blocklist' | 10 | } from '@shared/extra-utils/users/blocklist' |
11 | import { addUserSubscription, listUserSubscriptionVideos } from '@shared/extra-utils/users/user-subscriptions' | ||
11 | import { VideoPrivacy } from '@shared/models' | 12 | import { VideoPrivacy } from '@shared/models' |
13 | import { ScopedToken } from '@shared/models/users/user-scoped-token' | ||
12 | import { | 14 | import { |
13 | cleanupTests, | 15 | cleanupTests, |
14 | createUser, | 16 | createUser, |
15 | doubleFollow, | 17 | doubleFollow, |
16 | flushAndRunMultipleServers, | 18 | flushAndRunMultipleServers, |
19 | flushAndRunServer, | ||
17 | getJSONfeed, | 20 | getJSONfeed, |
18 | getMyUserInformation, | 21 | getMyUserInformation, |
22 | getUserScopedTokens, | ||
19 | getXMLfeed, | 23 | getXMLfeed, |
24 | renewUserScopedTokens, | ||
20 | ServerInfo, | 25 | ServerInfo, |
21 | setAccessTokensToServers, | 26 | setAccessTokensToServers, |
22 | uploadVideo, | 27 | uploadVideo, |
23 | uploadVideoAndGetId, | 28 | uploadVideoAndGetId, |
24 | userLogin, | 29 | userLogin |
25 | flushAndRunServer, | ||
26 | getUserScopedTokens | ||
27 | } from '../../../shared/extra-utils' | 30 | } from '../../../shared/extra-utils' |
28 | import { waitJobs } from '../../../shared/extra-utils/server/jobs' | 31 | import { waitJobs } from '../../../shared/extra-utils/server/jobs' |
29 | import { addVideoCommentThread } from '../../../shared/extra-utils/videos/video-comments' | 32 | import { addVideoCommentThread } from '../../../shared/extra-utils/videos/video-comments' |
30 | import { User } from '../../../shared/models/users' | 33 | import { User } from '../../../shared/models/users' |
31 | import { ScopedToken } from '@shared/models/users/user-scoped-token' | ||
32 | import { listUserSubscriptionVideos, addUserSubscription } from '@shared/extra-utils/users/user-subscriptions' | ||
33 | 34 | ||
34 | chai.use(require('chai-xml')) | 35 | chai.use(require('chai-xml')) |
35 | chai.use(require('chai-json-schema')) | 36 | chai.use(require('chai-json-schema')) |
@@ -298,14 +299,10 @@ describe('Test syndication feeds', () => { | |||
298 | }) | 299 | }) |
299 | 300 | ||
300 | describe('Video feed from my subscriptions', function () { | 301 | describe('Video feed from my subscriptions', function () { |
301 | /** | 302 | let feeduserAccountId: number |
302 | * use the 'version' query parameter to bust cache between tests | 303 | let feeduserFeedToken: string |
303 | */ | ||
304 | 304 | ||
305 | it('Should list no videos for a user with no videos and no subscriptions', async function () { | 305 | it('Should list no videos for a user with no videos and no subscriptions', async function () { |
306 | let feeduserAccountId: number | ||
307 | let feeduserFeedToken: string | ||
308 | |||
309 | const attr = { username: 'feeduser', password: 'password' } | 306 | const attr = { username: 'feeduser', password: 'password' } |
310 | await createUser({ url: servers[0].url, accessToken: servers[0].accessToken, username: attr.username, password: attr.password }) | 307 | await createUser({ url: servers[0].url, accessToken: servers[0].accessToken, username: attr.username, password: attr.password }) |
311 | const feeduserAccessToken = await userLogin(servers[0], attr) | 308 | const feeduserAccessToken = await userLogin(servers[0], attr) |
@@ -332,15 +329,21 @@ describe('Test syndication feeds', () => { | |||
332 | } | 329 | } |
333 | }) | 330 | }) |
334 | 331 | ||
332 | it('Should fail with an invalid token', async function () { | ||
333 | await getJSONfeed(servers[0].url, 'subscriptions', { accountId: feeduserAccountId, token: 'toto' }, 403) | ||
334 | }) | ||
335 | |||
336 | it('Should fail with a token of another user', async function () { | ||
337 | await getJSONfeed(servers[0].url, 'subscriptions', { accountId: feeduserAccountId, token: userFeedToken }, 403) | ||
338 | }) | ||
339 | |||
335 | it('Should list no videos for a user with videos but no subscriptions', async function () { | 340 | it('Should list no videos for a user with videos but no subscriptions', async function () { |
336 | { | 341 | const res = await listUserSubscriptionVideos(servers[0].url, userAccessToken) |
337 | const res = await listUserSubscriptionVideos(servers[0].url, userAccessToken) | 342 | expect(res.body.total).to.equal(0) |
338 | expect(res.body.total).to.equal(0) | ||
339 | 343 | ||
340 | const json = await getJSONfeed(servers[0].url, 'subscriptions', { accountId: userAccountId, token: userFeedToken }) | 344 | const json = await getJSONfeed(servers[0].url, 'subscriptions', { accountId: userAccountId, token: userFeedToken }) |
341 | const jsonObj = JSON.parse(json.text) | 345 | const jsonObj = JSON.parse(json.text) |
342 | expect(jsonObj.items.length).to.be.equal(0) // no subscription, it should not list the instance's videos but list 0 videos | 346 | expect(jsonObj.items.length).to.be.equal(0) // no subscription, it should not list the instance's videos but list 0 videos |
343 | } | ||
344 | }) | 347 | }) |
345 | 348 | ||
346 | it('Should list self videos for a user with a subscription to themselves', async function () { | 349 | it('Should list self videos for a user with a subscription to themselves', async function () { |
@@ -376,6 +379,20 @@ describe('Test syndication feeds', () => { | |||
376 | } | 379 | } |
377 | }) | 380 | }) |
378 | 381 | ||
382 | it('Should renew the token, and so have an invalid old token', async function () { | ||
383 | await renewUserScopedTokens(servers[0].url, userAccessToken) | ||
384 | |||
385 | await getJSONfeed(servers[0].url, 'subscriptions', { accountId: userAccountId, token: userFeedToken, version: 3 }, 403) | ||
386 | }) | ||
387 | |||
388 | it('Should succeed with the new token', async function () { | ||
389 | const res2 = await getUserScopedTokens(servers[0].url, userAccessToken) | ||
390 | const token: ScopedToken = res2.body | ||
391 | userFeedToken = token.feedToken | ||
392 | |||
393 | await getJSONfeed(servers[0].url, 'subscriptions', { accountId: userAccountId, token: userFeedToken, version: 4 }) | ||
394 | }) | ||
395 | |||
379 | }) | 396 | }) |
380 | 397 | ||
381 | after(async function () { | 398 | after(async function () { |