]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/tests/utils/videos/video-channels.ts
Improve check videos parameters tests
[github/Chocobozzz/PeerTube.git] / server / tests / utils / videos / video-channels.ts
1 import * as request from 'supertest'
2
3 type VideoChannelAttributes = {
4 name?: string
5 description?: string
6 }
7
8 function getVideoChannelsList (url: string, start: number, count: number, sort?: string) {
9 const path = '/api/v1/videos/channels'
10
11 const req = request(url)
12 .get(path)
13 .query({ start: start })
14 .query({ count: count })
15
16 if (sort) req.query({ sort })
17
18 return req.set('Accept', 'application/json')
19 .expect(200)
20 .expect('Content-Type', /json/)
21 }
22
23 function getAccountVideoChannelsList (url: string, accountId: number | string, specialStatus = 200) {
24 const path = '/api/v1/videos/accounts/' + accountId + '/channels'
25
26 return request(url)
27 .get(path)
28 .set('Accept', 'application/json')
29 .expect(specialStatus)
30 .expect('Content-Type', /json/)
31 }
32
33 function addVideoChannel (url: string, token: string, videoChannelAttributesArg: VideoChannelAttributes, expectedStatus = 204) {
34 const path = '/api/v1/videos/channels'
35
36 // Default attributes
37 let attributes = {
38 name: 'my super video channel',
39 description: 'my super channel description'
40 }
41 attributes = Object.assign(attributes, videoChannelAttributesArg)
42
43 return request(url)
44 .post(path)
45 .send(attributes)
46 .set('Accept', 'application/json')
47 .set('Authorization', 'Bearer ' + token)
48 .expect(expectedStatus)
49 }
50
51 function updateVideoChannel (url: string, token: string, channelId: number, attributes: VideoChannelAttributes, expectedStatus = 204) {
52 const body = {}
53 const path = '/api/v1/videos/channels/' + channelId
54
55 if (attributes.name) body['name'] = attributes.name
56 if (attributes.description) body['description'] = attributes.description
57
58 return request(url)
59 .put(path)
60 .send(body)
61 .set('Accept', 'application/json')
62 .set('Authorization', 'Bearer ' + token)
63 .expect(expectedStatus)
64 }
65
66 function deleteVideoChannel (url: string, token: string, channelId: number, expectedStatus = 204) {
67 const path = '/api/v1/videos/channels/'
68
69 return request(url)
70 .delete(path + channelId)
71 .set('Accept', 'application/json')
72 .set('Authorization', 'Bearer ' + token)
73 .expect(expectedStatus)
74 }
75
76 function getVideoChannel (url: string, channelId: number) {
77 const path = '/api/v1/videos/channels/' + channelId
78
79 return request(url)
80 .get(path)
81 .set('Accept', 'application/json')
82 .expect(200)
83 .expect('Content-Type', /json/)
84 }
85
86 // ---------------------------------------------------------------------------
87
88 export {
89 getVideoChannelsList,
90 getAccountVideoChannelsList,
91 addVideoChannel,
92 updateVideoChannel,
93 deleteVideoChannel,
94 getVideoChannel
95 }