X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftests%2Fplugins%2Ffilter-hooks.ts;h=b1f83d201750b208f38d4d57f0a9fc3ff0d2b7a6;hb=c8fa571f32b10c083fab07f28d2ef55895ef40af;hp=02915f08cb2f8199f383cdb778b618544f014c68;hpb=421ff4618da64f0849353383f690a014024c40da;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tests/plugins/filter-hooks.ts b/server/tests/plugins/filter-hooks.ts index 02915f08c..b1f83d201 100644 --- a/server/tests/plugins/filter-hooks.ts +++ b/server/tests/plugins/filter-hooks.ts @@ -2,19 +2,19 @@ import 'mocha' import * as chai from 'chai' +import { HttpStatusCode, VideoDetails, VideoImportState, VideoPlaylist, VideoPlaylistPrivacy, VideoPrivacy } from '@shared/models' import { cleanupTests, createMultipleServers, doubleFollow, - FIXTURE_URLS, makeRawRequest, PeerTubeServer, PluginsCommand, setAccessTokensToServers, setDefaultVideoChannel, waitJobs -} from '@shared/extra-utils' -import { HttpStatusCode, VideoDetails, VideoImportState, VideoPlaylist, VideoPlaylistPrivacy, VideoPrivacy } from '@shared/models' +} from '@shared/server-commands' +import { FIXTURE_URLS } from '../shared' const expect = chai.expect @@ -22,6 +22,7 @@ describe('Test plugin filter hooks', function () { let servers: PeerTubeServer[] let videoUUID: string let threadId: number + let videoPlaylistUUID: string before(async function () { this.timeout(60000) @@ -33,9 +34,20 @@ describe('Test plugin filter hooks', function () { await servers[0].plugins.install({ path: PluginsCommand.getPluginTestPath() }) await servers[0].plugins.install({ path: PluginsCommand.getPluginTestPath('-filter-translations') }) + { + ({ uuid: videoPlaylistUUID } = await servers[0].playlists.create({ + attributes: { + displayName: 'my super playlist', + privacy: VideoPlaylistPrivacy.PUBLIC, + description: 'my super description', + videoChannelId: servers[0].store.channel.id + } + })) + } for (let i = 0; i < 10; i++) { - await servers[0].videos.upload({ attributes: { name: 'default video ' + i } }) + const video = await servers[0].videos.upload({ attributes: { name: 'default video ' + i } }) + await servers[0].playlists.addElement({ playlistId: videoPlaylistUUID, attributes: { videoId: video.id } }) } const { data } = await servers[0].videos.list() @@ -69,6 +81,26 @@ describe('Test plugin filter hooks', function () { expect(total).to.equal(11) }) + it('Should run filter:api.video-playlist.videos.list.params', async function () { + const { data } = await servers[0].playlists.listVideos({ + count: 2, + playlistId: videoPlaylistUUID + }) + + // 1 plugin do +1 to the count parameter + expect(data).to.have.lengthOf(3) + }) + + it('Should run filter:api.video-playlist.videos.list.result', async function () { + const { total } = await servers[0].playlists.listVideos({ + count: 0, + playlistId: videoPlaylistUUID + }) + + // Plugin do +1 to the total result + expect(total).to.equal(11) + }) + it('Should run filter:api.accounts.videos.list.params', async function () { const { data } = await servers[0].videos.listByAccount({ handle: 'root', start: 0, count: 2 }) @@ -363,7 +395,7 @@ describe('Test plugin filter hooks', function () { const uuids: string[] = [] for (const name of [ 'bad torrent', 'bad file', 'bad playlist file' ]) { - const uuid = (await servers[0].videos.quickUpload({ name: name })).uuid + const uuid = (await servers[0].videos.quickUpload({ name })).uuid uuids.push(uuid) } @@ -410,17 +442,11 @@ describe('Test plugin filter hooks', function () { before(async function () { this.timeout(60000) - await servers[0].config.updateCustomSubConfig({ - newConfig: { - transcoding: { - enabled: false - } - } - }) + await servers[0].config.disableTranscoding() for (const name of [ 'bad embed', 'good embed' ]) { { - const uuid = (await servers[0].videos.quickUpload({ name: name })).uuid + const uuid = (await servers[0].videos.quickUpload({ name })).uuid embedVideos.push(await servers[0].videos.get({ id: uuid })) } @@ -537,6 +563,75 @@ describe('Test plugin filter hooks', function () { }) }) + describe('Upload/import/live attributes filters', function () { + + before(async function () { + await servers[0].config.enableLive({ transcoding: false, allowReplay: false }) + await servers[0].config.enableImports() + await servers[0].config.disableTranscoding() + }) + + it('Should run filter:api.video.upload.video-attribute.result', async function () { + for (const mode of [ 'legacy' as 'legacy', 'resumable' as 'resumable' ]) { + const { id } = await servers[0].videos.upload({ attributes: { name: 'video', description: 'upload' }, mode }) + + const video = await servers[0].videos.get({ id }) + expect(video.description).to.equal('upload - filter:api.video.upload.video-attribute.result') + } + }) + + it('Should run filter:api.video.import-url.video-attribute.result', async function () { + const attributes = { + name: 'video', + description: 'import url', + channelId: servers[0].store.channel.id, + targetUrl: FIXTURE_URLS.goodVideo, + privacy: VideoPrivacy.PUBLIC + } + const { video: { id } } = await servers[0].imports.importVideo({ attributes }) + + const video = await servers[0].videos.get({ id }) + expect(video.description).to.equal('import url - filter:api.video.import-url.video-attribute.result') + }) + + it('Should run filter:api.video.import-torrent.video-attribute.result', async function () { + const attributes = { + name: 'video', + description: 'import torrent', + channelId: servers[0].store.channel.id, + magnetUri: FIXTURE_URLS.magnet, + privacy: VideoPrivacy.PUBLIC + } + const { video: { id } } = await servers[0].imports.importVideo({ attributes }) + + const video = await servers[0].videos.get({ id }) + expect(video.description).to.equal('import torrent - filter:api.video.import-torrent.video-attribute.result') + }) + + it('Should run filter:api.video.live.video-attribute.result', async function () { + const fields = { + name: 'live', + description: 'live', + channelId: servers[0].store.channel.id, + privacy: VideoPrivacy.PUBLIC + } + const { id } = await servers[0].live.create({ fields }) + + const video = await servers[0].videos.get({ id }) + expect(video.description).to.equal('live - filter:api.video.live.video-attribute.result') + }) + }) + + describe('Stats filters', function () { + + it('Should run filter:api.server.stats.get.result', async function () { + const data = await servers[0].stats.get() + + expect((data as any).customStats).to.equal(14) + }) + + }) + after(async function () { await cleanupTests(servers) })