Cleanup tests imports
[oweals/peertube.git] / server / tests / utils / videos / video-captions.ts
1 import { makeDeleteRequest, makeGetRequest, makeUploadRequest } from '../requests/requests'
2 import * as request from 'supertest'
3 import * as chai from 'chai'
4 import { buildAbsoluteFixturePath } from '../miscs/miscs'
5
6 const expect = chai.expect
7
8 function createVideoCaption (args: {
9   url: string,
10   accessToken: string
11   videoId: string | number
12   language: string
13   fixture: string,
14   mimeType?: string,
15   statusCodeExpected?: number
16 }) {
17   const path = '/api/v1/videos/' + args.videoId + '/captions/' + args.language
18
19   const captionfile = buildAbsoluteFixturePath(args.fixture)
20   const captionfileAttach = args.mimeType ? [ captionfile, { contentType: args.mimeType } ] : captionfile
21
22   return makeUploadRequest({
23     method: 'PUT',
24     url: args.url,
25     path,
26     token: args.accessToken,
27     fields: {},
28     attaches: {
29       captionfile: captionfileAttach
30     },
31     statusCodeExpected: args.statusCodeExpected || 204
32   })
33 }
34
35 function listVideoCaptions (url: string, videoId: string | number) {
36   const path = '/api/v1/videos/' + videoId + '/captions'
37
38   return makeGetRequest({
39     url,
40     path,
41     statusCodeExpected: 200
42   })
43 }
44
45 function deleteVideoCaption (url: string, token: string, videoId: string | number, language: string) {
46   const path = '/api/v1/videos/' + videoId + '/captions/' + language
47
48   return makeDeleteRequest({
49     url,
50     token,
51     path,
52     statusCodeExpected: 204
53   })
54 }
55
56 async function testCaptionFile (url: string, captionPath: string, containsString: string) {
57   const res = await request(url)
58     .get(captionPath)
59     .expect(200)
60
61   expect(res.text).to.contain(containsString)
62 }
63
64 // ---------------------------------------------------------------------------
65
66 export {
67   createVideoCaption,
68   listVideoCaptions,
69   testCaptionFile,
70   deleteVideoCaption
71 }