aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/tests/api/videos
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2021-07-06 14:30:20 +0200
committerChocobozzz <me@florianbigard.com>2021-07-20 15:27:17 +0200
commit23a3a8827cb8b862f5cc7ee2819f39918303beca (patch)
tree93a3bdbd02787d32094d6d50aa209f2c079038a5 /server/tests/api/videos
parent480d6ea6791fe4100f1905af1e1e3a08173594ea (diff)
downloadPeerTube-23a3a8827cb8b862f5cc7ee2819f39918303beca.tar.gz
PeerTube-23a3a8827cb8b862f5cc7ee2819f39918303beca.tar.zst
PeerTube-23a3a8827cb8b862f5cc7ee2819f39918303beca.zip
Introduce overviews command
Diffstat (limited to 'server/tests/api/videos')
-rw-r--r--server/tests/api/videos/video-nsfw.ts35
-rw-r--r--server/tests/api/videos/videos-overview.ts71
2 files changed, 48 insertions, 58 deletions
diff --git a/server/tests/api/videos/video-nsfw.ts b/server/tests/api/videos/video-nsfw.ts
index b16b484b9..6c98c9f12 100644
--- a/server/tests/api/videos/video-nsfw.ts
+++ b/server/tests/api/videos/video-nsfw.ts
@@ -1,34 +1,33 @@
1/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ 1/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
2 2
3import * as chai from 'chai'
4import 'mocha' 3import 'mocha'
5import { cleanupTests, getVideosList, ServerInfo, setAccessTokensToServers, uploadVideo } from '../../../../shared/extra-utils/index' 4import * as chai from 'chai'
6import { userLogin } from '../../../../shared/extra-utils/users/login'
7import { createUser } from '../../../../shared/extra-utils/users/users'
8import { getMyVideos } from '../../../../shared/extra-utils/videos/videos'
9import { 5import {
6 cleanupTests,
7 createUser,
10 flushAndRunServer, 8 flushAndRunServer,
11 getAccountVideos, 9 getAccountVideos,
12 getConfig, 10 getConfig,
13 getCustomConfig, 11 getCustomConfig,
14 getMyUserInformation, 12 getMyUserInformation,
13 getMyVideos,
15 getVideoChannelVideos, 14 getVideoChannelVideos,
15 getVideosList,
16 getVideosListWithToken, 16 getVideosListWithToken,
17 searchVideo, 17 searchVideo,
18 searchVideoWithToken, 18 searchVideoWithToken,
19 ServerInfo,
20 setAccessTokensToServers,
19 updateCustomConfig, 21 updateCustomConfig,
20 updateMyUser 22 updateMyUser,
21} from '../../../../shared/extra-utils' 23 uploadVideo,
22import { ServerConfig, VideosOverview } from '../../../../shared/models' 24 userLogin
23import { CustomConfig } from '../../../../shared/models/server/custom-config.model' 25} from '@shared/extra-utils'
24import { User } from '../../../../shared/models/users' 26import { CustomConfig, ServerConfig, User, VideosOverview } from '@shared/models'
25import { getVideosOverview, getVideosOverviewWithToken } from '@shared/extra-utils/overviews/overviews'
26 27
27const expect = chai.expect 28const expect = chai.expect
28 29
29function createOverviewRes (res: any) { 30function createOverviewRes (overview: VideosOverview) {
30 const overview = res.body as VideosOverview
31
32 const videos = overview.categories[0].videos 31 const videos = overview.categories[0].videos
33 return { body: { data: videos, total: videos.length } } 32 return { body: { data: videos, total: videos.length } }
34} 33}
@@ -57,7 +56,9 @@ describe('Test video NSFW policy', function () {
57 56
58 // Overviews do not support video filters 57 // Overviews do not support video filters
59 if (!hasQuery) { 58 if (!hasQuery) {
60 promises.push(getVideosOverviewWithToken(server.url, 1, token).then(res => createOverviewRes(res))) 59 const p = server.overviewsCommand.getVideos({ page: 1, token })
60 .then(res => createOverviewRes(res))
61 promises.push(p)
61 } 62 }
62 63
63 return Promise.all(promises) 64 return Promise.all(promises)
@@ -72,7 +73,9 @@ describe('Test video NSFW policy', function () {
72 73
73 // Overviews do not support video filters 74 // Overviews do not support video filters
74 if (!hasQuery) { 75 if (!hasQuery) {
75 promises.push(getVideosOverview(server.url, 1).then(res => createOverviewRes(res))) 76 const p = server.overviewsCommand.getVideos({ page: 1 })
77 .then(res => createOverviewRes(res))
78 promises.push(p)
76 } 79 }
77 80
78 return Promise.all(promises) 81 return Promise.all(promises)
diff --git a/server/tests/api/videos/videos-overview.ts b/server/tests/api/videos/videos-overview.ts
index c266a1dc5..c8e3df4bd 100644
--- a/server/tests/api/videos/videos-overview.ts
+++ b/server/tests/api/videos/videos-overview.ts
@@ -2,8 +2,9 @@
2 2
3import 'mocha' 3import 'mocha'
4import * as chai from 'chai' 4import * as chai from 'chai'
5 5import { Response } from 'superagent'
6import { 6import {
7 addAccountToAccountBlocklist,
7 cleanupTests, 8 cleanupTests,
8 flushAndRunServer, 9 flushAndRunServer,
9 generateUserAccessToken, 10 generateUserAccessToken,
@@ -11,20 +12,15 @@ import {
11 setAccessTokensToServers, 12 setAccessTokensToServers,
12 uploadVideo, 13 uploadVideo,
13 wait 14 wait
14} from '../../../../shared/extra-utils' 15} from '@shared/extra-utils'
15import { getVideosOverview, getVideosOverviewWithToken } from '../../../../shared/extra-utils/overviews/overviews' 16import { VideosOverview } from '@shared/models'
16import { VideosOverview } from '../../../../shared/models/overviews'
17import { addAccountToAccountBlocklist } from '@shared/extra-utils/users/blocklist'
18import { Response } from 'superagent'
19 17
20const expect = chai.expect 18const expect = chai.expect
21 19
22describe('Test a videos overview', function () { 20describe('Test a videos overview', function () {
23 let server: ServerInfo = null 21 let server: ServerInfo = null
24 22
25 function testOverviewCount (res: Response, expected: number) { 23 function testOverviewCount (overview: VideosOverview, expected: number) {
26 const overview: VideosOverview = res.body
27
28 expect(overview.tags).to.have.lengthOf(expected) 24 expect(overview.tags).to.have.lengthOf(expected)
29 expect(overview.categories).to.have.lengthOf(expected) 25 expect(overview.categories).to.have.lengthOf(expected)
30 expect(overview.channels).to.have.lengthOf(expected) 26 expect(overview.channels).to.have.lengthOf(expected)
@@ -39,9 +35,9 @@ describe('Test a videos overview', function () {
39 }) 35 })
40 36
41 it('Should send empty overview', async function () { 37 it('Should send empty overview', async function () {
42 const res = await getVideosOverview(server.url, 1) 38 const body = await server.overviewsCommand.getVideos({ page: 1 })
43 39
44 testOverviewCount(res, 0) 40 testOverviewCount(body, 0)
45 }) 41 })
46 42
47 it('Should upload 5 videos in a specific category, tag and channel but not include them in overview', async function () { 43 it('Should upload 5 videos in a specific category, tag and channel but not include them in overview', async function () {
@@ -55,34 +51,35 @@ describe('Test a videos overview', function () {
55 tags: [ 'coucou1', 'coucou2' ] 51 tags: [ 'coucou1', 'coucou2' ]
56 }) 52 })
57 53
58 const res = await getVideosOverview(server.url, 1) 54 const body = await server.overviewsCommand.getVideos({ page: 1 })
59 55
60 testOverviewCount(res, 0) 56 testOverviewCount(body, 0)
61 }) 57 })
62 58
63 it('Should upload another video and include all videos in the overview', async function () { 59 it('Should upload another video and include all videos in the overview', async function () {
64 this.timeout(30000) 60 this.timeout(30000)
65 61
66 for (let i = 1; i < 6; i++) { 62 {
67 await uploadVideo(server.url, server.accessToken, { 63 for (let i = 1; i < 6; i++) {
68 name: 'video ' + i, 64 await uploadVideo(server.url, server.accessToken, {
69 category: 3, 65 name: 'video ' + i,
70 tags: [ 'coucou1', 'coucou2' ] 66 category: 3,
71 }) 67 tags: [ 'coucou1', 'coucou2' ]
68 })
69 }
70
71 await wait(3000)
72 } 72 }
73 73
74 await wait(3000)
75
76 { 74 {
77 const res = await getVideosOverview(server.url, 1) 75 const body = await server.overviewsCommand.getVideos({ page: 1 })
78 76
79 testOverviewCount(res, 1) 77 testOverviewCount(body, 1)
80 } 78 }
81 79
82 { 80 {
83 const res = await getVideosOverview(server.url, 2) 81 const overview = await server.overviewsCommand.getVideos({ page: 2 })
84 82
85 const overview: VideosOverview = res.body
86 expect(overview.tags).to.have.lengthOf(1) 83 expect(overview.tags).to.have.lengthOf(1)
87 expect(overview.categories).to.have.lengthOf(0) 84 expect(overview.categories).to.have.lengthOf(0)
88 expect(overview.channels).to.have.lengthOf(0) 85 expect(overview.channels).to.have.lengthOf(0)
@@ -90,20 +87,10 @@ describe('Test a videos overview', function () {
90 }) 87 })
91 88
92 it('Should have the correct overview', async function () { 89 it('Should have the correct overview', async function () {
93 const res1 = await getVideosOverview(server.url, 1) 90 const overview1 = await server.overviewsCommand.getVideos({ page: 1 })
94 const res2 = await getVideosOverview(server.url, 2) 91 const overview2 = await server.overviewsCommand.getVideos({ page: 2 })
95
96 const overview1: VideosOverview = res1.body
97 const overview2: VideosOverview = res2.body
98
99 const tmp = [
100 overview1.tags,
101 overview1.categories,
102 overview1.channels,
103 overview2.tags
104 ]
105 92
106 for (const arr of tmp) { 93 for (const arr of [ overview1.tags, overview1.categories, overview1.channels, overview2.tags ]) {
107 expect(arr).to.have.lengthOf(1) 94 expect(arr).to.have.lengthOf(1)
108 95
109 const obj = arr[0] 96 const obj = arr[0]
@@ -132,15 +119,15 @@ describe('Test a videos overview', function () {
132 await addAccountToAccountBlocklist(server.url, token, 'root@' + server.host) 119 await addAccountToAccountBlocklist(server.url, token, 'root@' + server.host)
133 120
134 { 121 {
135 const res = await getVideosOverview(server.url, 1) 122 const body = await server.overviewsCommand.getVideos({ page: 1 })
136 123
137 testOverviewCount(res, 1) 124 testOverviewCount(body, 1)
138 } 125 }
139 126
140 { 127 {
141 const res = await getVideosOverviewWithToken(server.url, 1, token) 128 const body = await server.overviewsCommand.getVideos({ page: 1, token })
142 129
143 testOverviewCount(res, 0) 130 testOverviewCount(body, 0)
144 } 131 }
145 }) 132 })
146 133