From 1c41b5c1ac798a06fbc0e7a2c6b91c5542865780 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 20 Mar 2023 08:57:01 +0100 Subject: [PATCH] Add infohash test for VOD --- server/tests/api/object-storage/videos.ts | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/server/tests/api/object-storage/videos.ts b/server/tests/api/object-storage/videos.ts index 6862658cc..6aaf32c34 100644 --- a/server/tests/api/object-storage/videos.ts +++ b/server/tests/api/object-storage/videos.ts @@ -26,8 +26,12 @@ import { waitJobs, webtorrentAdd } from '@shared/server-commands' +import { sha1 } from '@shared/extra-utils' async function checkFiles (options: { + server: PeerTubeServer + originServer: PeerTubeServer + video: VideoDetails baseMockUrl?: string @@ -39,6 +43,8 @@ async function checkFiles (options: { webtorrentPrefix?: string }) { const { + server, + originServer, video, playlistBucket, webtorrentBucket, @@ -86,6 +92,7 @@ async function checkFiles (options: { const resSha = await makeRawRequest({ url: hls.segmentsSha256Url, expectedStatus: HttpStatusCode.OK_200 }) expect(JSON.stringify(resSha.body)).to.not.throw + let i = 0 for (const file of hls.files) { expectStartWith(file.fileUrl, start) @@ -94,6 +101,15 @@ async function checkFiles (options: { expectStartWith(location, start) await makeRawRequest({ url: location, expectedStatus: HttpStatusCode.OK_200 }) + + if (originServer.internalServerNumber === server.internalServerNumber) { + const infohash = sha1(`${2 + hls.playlistUrl}+V${i}`) + const dbInfohashes = await originServer.sql.getPlaylistInfohash(hls.id) + + expect(dbInfohashes).to.include(infohash) + } + + i++ } } @@ -198,7 +214,7 @@ function runTestSuite (options: { for (const server of servers) { const video = await server.videos.get({ id: uuid }) - const files = await checkFiles({ ...options, video, baseMockUrl }) + const files = await checkFiles({ ...options, server, originServer: servers[0], video, baseMockUrl }) deletedUrls = deletedUrls.concat(files) } @@ -214,7 +230,7 @@ function runTestSuite (options: { for (const server of servers) { const video = await server.videos.get({ id: uuid }) - const files = await checkFiles({ ...options, video, baseMockUrl }) + const files = await checkFiles({ ...options, server, originServer: servers[0], video, baseMockUrl }) deletedUrls = deletedUrls.concat(files) }