diff options
Diffstat (limited to 'server/tests/peertube-runner/studio-transcoding.ts')
-rw-r--r-- | server/tests/peertube-runner/studio-transcoding.ts | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/server/tests/peertube-runner/studio-transcoding.ts b/server/tests/peertube-runner/studio-transcoding.ts deleted file mode 100644 index 56bfef897..000000000 --- a/server/tests/peertube-runner/studio-transcoding.ts +++ /dev/null | |||
@@ -1,124 +0,0 @@ | |||
1 | |||
2 | import { expect } from 'chai' | ||
3 | import { checkPeerTubeRunnerCacheIsEmpty, checkVideoDuration, expectStartWith, PeerTubeRunnerProcess } from '@server/tests/shared' | ||
4 | import { areMockObjectStorageTestsDisabled, getAllFiles, wait } from '@shared/core-utils' | ||
5 | import { | ||
6 | cleanupTests, | ||
7 | createMultipleServers, | ||
8 | doubleFollow, | ||
9 | ObjectStorageCommand, | ||
10 | PeerTubeServer, | ||
11 | setAccessTokensToServers, | ||
12 | setDefaultVideoChannel, | ||
13 | VideoStudioCommand, | ||
14 | waitJobs | ||
15 | } from '@shared/server-commands' | ||
16 | |||
17 | describe('Test studio transcoding in peertube-runner program', function () { | ||
18 | let servers: PeerTubeServer[] = [] | ||
19 | let peertubeRunner: PeerTubeRunnerProcess | ||
20 | |||
21 | function runSuite (options: { | ||
22 | objectStorage?: ObjectStorageCommand | ||
23 | } = {}) { | ||
24 | const { objectStorage } = options | ||
25 | |||
26 | it('Should run a complex studio transcoding', async function () { | ||
27 | this.timeout(120000) | ||
28 | |||
29 | const { uuid } = await servers[0].videos.quickUpload({ name: 'mp4', fixture: 'video_short.mp4' }) | ||
30 | await waitJobs(servers) | ||
31 | |||
32 | const video = await servers[0].videos.get({ id: uuid }) | ||
33 | const oldFileUrls = getAllFiles(video).map(f => f.fileUrl) | ||
34 | |||
35 | await servers[0].videoStudio.createEditionTasks({ videoId: uuid, tasks: VideoStudioCommand.getComplexTask() }) | ||
36 | await waitJobs(servers, { runnerJobs: true }) | ||
37 | |||
38 | for (const server of servers) { | ||
39 | const video = await server.videos.get({ id: uuid }) | ||
40 | const files = getAllFiles(video) | ||
41 | |||
42 | for (const f of files) { | ||
43 | expect(oldFileUrls).to.not.include(f.fileUrl) | ||
44 | } | ||
45 | |||
46 | if (objectStorage) { | ||
47 | for (const webVideoFile of video.files) { | ||
48 | expectStartWith(webVideoFile.fileUrl, objectStorage.getMockWebVideosBaseUrl()) | ||
49 | } | ||
50 | |||
51 | for (const hlsFile of video.streamingPlaylists[0].files) { | ||
52 | expectStartWith(hlsFile.fileUrl, objectStorage.getMockPlaylistBaseUrl()) | ||
53 | } | ||
54 | } | ||
55 | |||
56 | await checkVideoDuration(server, uuid, 9) | ||
57 | } | ||
58 | }) | ||
59 | } | ||
60 | |||
61 | before(async function () { | ||
62 | this.timeout(120_000) | ||
63 | |||
64 | servers = await createMultipleServers(2) | ||
65 | |||
66 | await setAccessTokensToServers(servers) | ||
67 | await setDefaultVideoChannel(servers) | ||
68 | |||
69 | await doubleFollow(servers[0], servers[1]) | ||
70 | |||
71 | await servers[0].config.enableTranscoding({ hls: true, webVideo: true }) | ||
72 | await servers[0].config.enableStudio() | ||
73 | await servers[0].config.enableRemoteStudio() | ||
74 | |||
75 | const registrationToken = await servers[0].runnerRegistrationTokens.getFirstRegistrationToken() | ||
76 | |||
77 | peertubeRunner = new PeerTubeRunnerProcess(servers[0]) | ||
78 | await peertubeRunner.runServer() | ||
79 | await peertubeRunner.registerPeerTubeInstance({ registrationToken, runnerName: 'runner' }) | ||
80 | }) | ||
81 | |||
82 | describe('With videos on local filesystem storage', function () { | ||
83 | runSuite() | ||
84 | }) | ||
85 | |||
86 | describe('With videos on object storage', function () { | ||
87 | if (areMockObjectStorageTestsDisabled()) return | ||
88 | |||
89 | const objectStorage = new ObjectStorageCommand() | ||
90 | |||
91 | before(async function () { | ||
92 | await objectStorage.prepareDefaultMockBuckets() | ||
93 | |||
94 | await servers[0].kill() | ||
95 | |||
96 | await servers[0].run(objectStorage.getDefaultMockConfig()) | ||
97 | |||
98 | // Wait for peertube runner socket reconnection | ||
99 | await wait(1500) | ||
100 | }) | ||
101 | |||
102 | runSuite({ objectStorage }) | ||
103 | |||
104 | after(async function () { | ||
105 | await objectStorage.cleanupMock() | ||
106 | }) | ||
107 | }) | ||
108 | |||
109 | describe('Check cleanup', function () { | ||
110 | |||
111 | it('Should have an empty cache directory', async function () { | ||
112 | await checkPeerTubeRunnerCacheIsEmpty(peertubeRunner) | ||
113 | }) | ||
114 | }) | ||
115 | |||
116 | after(async function () { | ||
117 | if (peertubeRunner) { | ||
118 | await peertubeRunner.unregisterPeerTubeInstance({ runnerName: 'runner' }) | ||
119 | peertubeRunner.kill() | ||
120 | } | ||
121 | |||
122 | await cleanupTests(servers) | ||
123 | }) | ||
124 | }) | ||