8781470496d6d091267c900cd5ca952c0dc85673
[oweals/peertube.git] / server / tests / utils / videos / video-comments.ts
1 import * as request from 'supertest'
2
3 function getVideoCommentThreads (url: string, videoId: number | string, start: number, count: number, sort?: string) {
4   const path = '/api/v1/videos/' + videoId + '/comment-threads'
5
6   const req = request(url)
7     .get(path)
8     .query({ start: start })
9     .query({ count: count })
10
11   if (sort) req.query({ sort })
12
13   return req.set('Accept', 'application/json')
14     .expect(200)
15     .expect('Content-Type', /json/)
16 }
17
18 function getVideoThreadComments (url: string, videoId: number | string, threadId: number) {
19   const path = '/api/v1/videos/' + videoId + '/comment-threads/' + threadId
20
21   return request(url)
22     .get(path)
23     .set('Accept', 'application/json')
24     .expect(200)
25     .expect('Content-Type', /json/)
26 }
27
28 function addVideoCommentThread (url: string, token: string, videoId: number | string, text: string, expectedStatus = 200) {
29   const path = '/api/v1/videos/' + videoId + '/comment-threads'
30
31   return request(url)
32     .post(path)
33     .send({ text })
34     .set('Accept', 'application/json')
35     .set('Authorization', 'Bearer ' + token)
36     .expect(expectedStatus)
37 }
38
39 function addVideoCommentReply (
40   url: string,
41   token: string,
42   videoId: number | string,
43   inReplyToCommentId: number,
44   text: string,
45   expectedStatus = 200
46 ) {
47   const path = '/api/v1/videos/' + videoId + '/comments/' + inReplyToCommentId
48
49   return request(url)
50     .post(path)
51     .send({ text })
52     .set('Accept', 'application/json')
53     .set('Authorization', 'Bearer ' + token)
54     .expect(expectedStatus)
55 }
56
57 // ---------------------------------------------------------------------------
58
59 export {
60   getVideoCommentThreads,
61   getVideoThreadComments,
62   addVideoCommentThread,
63   addVideoCommentReply
64 }