From d1aed103539e2e53418a44716f8f2b1603cd339f Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 21 Jul 2021 16:13:20 +0200 Subject: [PATCH] Add overviews filter hook tests --- server/controllers/api/overviews.ts | 8 ++++---- server/tests/fixtures/peertube-plugin-test/main.js | 9 ++++++--- server/tests/plugins/filter-hooks.ts | 8 ++++++++ 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/server/controllers/api/overviews.ts b/server/controllers/api/overviews.ts index 727ed66d7..2dfac15ef 100644 --- a/server/controllers/api/overviews.ts +++ b/server/controllers/api/overviews.ts @@ -109,7 +109,7 @@ async function getVideos ( res: express.Response, where: { videoChannelId?: number, tagsOneOf?: string[], categoryOneOf?: number[] } ) { - let query = Object.assign({ + const query = await Hooks.wrapObject({ start: 0, count: 12, sort: '-createdAt', @@ -117,10 +117,10 @@ async function getVideos ( nsfw: buildNSFWFilter(res), user: res.locals.oauth ? res.locals.oauth.token.User : undefined, withFiles: false, - countVideos: false - }, where) + countVideos: false, - query = await Hooks.wrapObject(query, 'filter:api.overviews.videos.list.params') + ...where + }, 'filter:api.overviews.videos.list.params') const { data } = await Hooks.wrapPromiseFun( VideoModel.listForApi, diff --git a/server/tests/fixtures/peertube-plugin-test/main.js b/server/tests/fixtures/peertube-plugin-test/main.js index f8e6f0b98..db405ff31 100644 --- a/server/tests/fixtures/peertube-plugin-test/main.js +++ b/server/tests/fixtures/peertube-plugin-test/main.js @@ -234,7 +234,7 @@ async function register ({ registerHook, registerSetting, settingsManager, stora }) { - const searchHooks = [ + const filterHooks = [ 'filter:api.search.videos.local.list.params', 'filter:api.search.videos.local.list.result', 'filter:api.search.videos.index.list.params', @@ -246,10 +246,13 @@ async function register ({ registerHook, registerSetting, settingsManager, stora 'filter:api.search.video-playlists.local.list.params', 'filter:api.search.video-playlists.local.list.result', 'filter:api.search.video-playlists.index.list.params', - 'filter:api.search.video-playlists.index.list.result' + 'filter:api.search.video-playlists.index.list.result', + + 'filter:api.overviews.videos.list.params', + 'filter:api.overviews.videos.list.result' ] - for (const h of searchHooks) { + for (const h of filterHooks) { registerHook({ target: h, handler: (obj) => { diff --git a/server/tests/plugins/filter-hooks.ts b/server/tests/plugins/filter-hooks.ts index c00ac8f91..02915f08c 100644 --- a/server/tests/plugins/filter-hooks.ts +++ b/server/tests/plugins/filter-hooks.ts @@ -255,6 +255,14 @@ describe('Test plugin filter hooks', function () { expect(thread.comment.text.endsWith(' <3')).to.be.true }) + it('Should run filter:api.overviews.videos.list.{params,result}', async function () { + await servers[0].overviews.getVideos({ page: 1 }) + + // 3 because we get 3 samples per page + await servers[0].servers.waitUntilLog('Run hook filter:api.overviews.videos.list.params', 3) + await servers[0].servers.waitUntilLog('Run hook filter:api.overviews.videos.list.result', 3) + }) + describe('Should run filter:video.auto-blacklist.result', function () { async function checkIsBlacklisted (id: number | string, value: boolean) { -- 2.41.0