From c5ca7e1e0c735d1e658f9ef524a61d19f6a50fea Mon Sep 17 00:00:00 2001 From: kontrollanten <6680299+kontrollanten@users.noreply.github.com> Date: Tue, 15 Feb 2022 08:24:22 +0100 Subject: add filter:api.video-playlist.videos.list.* hooks closes #4775 --- server/tests/fixtures/peertube-plugin-test/main.js | 10 +++++++ server/tests/plugins/filter-hooks.ts | 34 +++++++++++++++++++++- 2 files changed, 43 insertions(+), 1 deletion(-) (limited to 'server/tests') diff --git a/server/tests/fixtures/peertube-plugin-test/main.js b/server/tests/fixtures/peertube-plugin-test/main.js index 90951d611..7715ab6e8 100644 --- a/server/tests/fixtures/peertube-plugin-test/main.js +++ b/server/tests/fixtures/peertube-plugin-test/main.js @@ -44,6 +44,16 @@ async function register ({ registerHook, registerSetting, settingsManager, stora handler: obj => addToTotal(obj) }) + registerHook({ + target: 'filter:api.video-playlist.videos.list.params', + handler: obj => addToCount(obj) + }) + + registerHook({ + target: 'filter:api.video-playlist.videos.list.result', + handler: obj => addToTotal(obj) + }) + registerHook({ target: 'filter:api.accounts.videos.list.params', handler: obj => addToCount(obj) diff --git a/server/tests/plugins/filter-hooks.ts b/server/tests/plugins/filter-hooks.ts index 7adfc1277..e0f25ca26 100644 --- a/server/tests/plugins/filter-hooks.ts +++ b/server/tests/plugins/filter-hooks.ts @@ -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 }) -- cgit v1.2.3