]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - shared/extra-utils/miscs/tests.ts
Add peertube import test
[github/Chocobozzz/PeerTube.git] / shared / extra-utils / miscs / tests.ts
1 import { stat } from 'fs-extra'
2 import { basename, isAbsolute, join, resolve } from 'path'
3
4 const FIXTURE_URLS = {
5 peertube_long: 'https://peertube2.cpy.re/videos/watch/122d093a-1ede-43bd-bd34-59d2931ffc5e',
6 peertube_short: 'https://peertube2.cpy.re/w/3fbif9S3WmtTP8gGsC5HBd',
7
8 youtube: 'https://www.youtube.com/watch?v=msX3jv1XdvM',
9
10 /**
11 * The video is used to check format-selection correctness wrt. HDR,
12 * which brings its own set of oddities outside of a MediaSource.
13 * FIXME: refactor once HDR is supported at playback
14 *
15 * The video needs to have the following format_ids:
16 * (which you can check by using `youtube-dl <url> -F`):
17 * - 303 (1080p webm vp9)
18 * - 299 (1080p mp4 avc1)
19 * - 335 (1080p webm vp9.2 HDR)
20 *
21 * 15 jan. 2021: TEST VIDEO NOT CURRENTLY PROVIDING
22 * - 400 (1080p mp4 av01)
23 * - 315 (2160p webm vp9 HDR)
24 * - 337 (2160p webm vp9.2 HDR)
25 * - 401 (2160p mp4 av01 HDR)
26 */
27 youtubeHDR: 'https://www.youtube.com/watch?v=qR5vOXbZsI4',
28
29 // eslint-disable-next-line max-len
30 magnet: 'magnet:?xs=https%3A%2F%2Fpeertube2.cpy.re%2Fstatic%2Ftorrents%2Fb209ca00-c8bb-4b2b-b421-1ede169f3dbc-720.torrent&xt=urn:btih:0f498834733e8057ed5c6f2ee2b4efd8d84a76ee&dn=super+peertube2+video&tr=wss%3A%2F%2Fpeertube2.cpy.re%3A443%2Ftracker%2Fsocket&tr=https%3A%2F%2Fpeertube2.cpy.re%2Ftracker%2Fannounce&ws=https%3A%2F%2Fpeertube2.cpy.re%2Fstatic%2Fwebseed%2Fb209ca00-c8bb-4b2b-b421-1ede169f3dbc-720.mp4',
31
32 badVideo: 'https://download.cpy.re/peertube/bad_video.mp4',
33 goodVideo: 'https://download.cpy.re/peertube/good_video.mp4',
34 goodVideo720: 'https://download.cpy.re/peertube/good_video_720.mp4',
35
36 file4K: 'https://download.cpy.re/peertube/4k_file.txt'
37 }
38
39 function parallelTests () {
40 return process.env.MOCHA_PARALLEL === 'true'
41 }
42
43 function isGithubCI () {
44 return !!process.env.GITHUB_WORKSPACE
45 }
46
47 function areHttpImportTestsDisabled () {
48 const disabled = process.env.DISABLE_HTTP_IMPORT_TESTS === 'true'
49
50 if (disabled) console.log('DISABLE_HTTP_IMPORT_TESTS env set to "true" so import tests are disabled')
51
52 return disabled
53 }
54
55 function areObjectStorageTestsDisabled () {
56 const disabled = process.env.ENABLE_OBJECT_STORAGE_TESTS !== 'true'
57
58 if (disabled) console.log('ENABLE_OBJECT_STORAGE_TESTS env is not set to "true" so object storage tests are disabled')
59
60 return disabled
61 }
62
63 function buildAbsoluteFixturePath (path: string, customCIPath = false) {
64 if (isAbsolute(path)) return path
65
66 if (customCIPath && process.env.GITHUB_WORKSPACE) {
67 return join(process.env.GITHUB_WORKSPACE, 'fixtures', path)
68 }
69
70 return join(root(), 'server', 'tests', 'fixtures', path)
71 }
72
73 function root () {
74 // We are in /miscs
75 let root = join(__dirname, '..', '..', '..')
76
77 if (basename(root) === 'dist') root = resolve(root, '..')
78
79 return root
80 }
81
82 function wait (milliseconds: number) {
83 return new Promise(resolve => setTimeout(resolve, milliseconds))
84 }
85
86 async function getFileSize (path: string) {
87 const stats = await stat(path)
88
89 return stats.size
90 }
91
92 function buildRequestStub (): any {
93 return { }
94 }
95
96 export {
97 FIXTURE_URLS,
98
99 parallelTests,
100 isGithubCI,
101 areHttpImportTestsDisabled,
102 buildAbsoluteFixturePath,
103 getFileSize,
104 buildRequestStub,
105 areObjectStorageTestsDisabled,
106 wait,
107 root
108 }