From 38267c0c8aa80f974a2c0b4c2bd33c8d8008ac94 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 8 Dec 2020 10:30:33 +0100 Subject: Use dedicated hooks for account/channel videos --- server/tests/fixtures/peertube-plugin-test/main.js | 28 +++++++++++++++++--- server/tests/plugins/filter-hooks.ts | 30 ++++++++++++++++++++++ 2 files changed, 54 insertions(+), 4 deletions(-) (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 322c0610c..e5a9f8df5 100644 --- a/server/tests/fixtures/peertube-plugin-test/main.js +++ b/server/tests/fixtures/peertube-plugin-test/main.js @@ -39,6 +39,26 @@ async function register ({ registerHook, registerSetting, settingsManager, stora handler: obj => addToTotal(obj) }) + registerHook({ + target: 'filter:api.accounts.videos.list.params', + handler: obj => addToCount(obj) + }) + + registerHook({ + target: 'filter:api.accounts.videos.list.result', + handler: obj => addToTotal(obj, 2) + }) + + registerHook({ + target: 'filter:api.video-channels.videos.list.params', + handler: obj => addToCount(obj, 3) + }) + + registerHook({ + target: 'filter:api.video-channels.videos.list.result', + handler: obj => addToTotal(obj, 3) + }) + registerHook({ target: 'filter:api.video.get.result', handler: video => { @@ -167,14 +187,14 @@ module.exports = { // ############################################################################ -function addToCount (obj) { - return Object.assign({}, obj, { count: obj.count + 1 }) +function addToCount (obj, amount = 1) { + return Object.assign({}, obj, { count: obj.count + amount }) } -function addToTotal (result) { +function addToTotal (result, amount = 1) { return { data: result.data, - total: result.total + 1 + total: result.total + amount } } diff --git a/server/tests/plugins/filter-hooks.ts b/server/tests/plugins/filter-hooks.ts index 9939b8e6e..3a5c7aa62 100644 --- a/server/tests/plugins/filter-hooks.ts +++ b/server/tests/plugins/filter-hooks.ts @@ -8,9 +8,11 @@ import { addVideoCommentThread, createLive, doubleFollow, + getAccountVideos, getConfig, getPluginTestPath, getVideo, + getVideoChannelVideos, getVideoCommentThreads, getVideosList, getVideosListPagination, @@ -90,6 +92,34 @@ describe('Test plugin filter hooks', function () { expect(res.body.total).to.equal(11) }) + it('Should run filter:api.accounts.videos.list.params', async function () { + const res = await getAccountVideos(servers[0].url, servers[0].accessToken, 'root', 0, 2) + + // 1 plugin do +1 to the count parameter + expect(res.body.data).to.have.lengthOf(3) + }) + + it('Should run filter:api.accounts.videos.list.result', async function () { + const res = await getAccountVideos(servers[0].url, servers[0].accessToken, 'root', 0, 2) + + // Plugin do +2 to the total result + expect(res.body.total).to.equal(12) + }) + + it('Should run filter:api.video-channels.videos.list.params', async function () { + const res = await getVideoChannelVideos(servers[0].url, servers[0].accessToken, 'root_channel', 0, 2) + + // 1 plugin do +3 to the count parameter + expect(res.body.data).to.have.lengthOf(5) + }) + + it('Should run filter:api.video-channels.videos.list.result', async function () { + const res = await getAccountVideos(servers[0].url, servers[0].accessToken, 'root_channel', 0, 2) + + // Plugin do +3 to the total result + expect(res.body.total).to.equal(13) + }) + it('Should run filter:api.video.get.result', async function () { const res = await getVideo(servers[0].url, videoUUID) -- cgit v1.2.3