From 89cd12756035a146bbcc4db78cd3cd64f2f3d88d Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 19 Jul 2019 17:30:41 +0200 Subject: Add hook filters tests --- server/tests/plugins/action-hooks.ts | 91 ++++++++++++++++++++++++++++++++---- server/tests/plugins/filter-hooks.ts | 69 +++++++++++++++++++++++---- 2 files changed, 144 insertions(+), 16 deletions(-) (limited to 'server/tests/plugins') diff --git a/server/tests/plugins/action-hooks.ts b/server/tests/plugins/action-hooks.ts index 93dc57d09..2a941148a 100644 --- a/server/tests/plugins/action-hooks.ts +++ b/server/tests/plugins/action-hooks.ts @@ -2,26 +2,101 @@ import * as chai from 'chai' import 'mocha' -import { cleanupTests, flushAndRunServer, ServerInfo } from '../../../shared/extra-utils/server/servers' -import { setAccessTokensToServers } from '../../../shared/extra-utils' +import { + cleanupTests, + flushAndRunMultipleServers, + flushAndRunServer, killallServers, reRunServer, + ServerInfo, + waitUntilLog +} from '../../../shared/extra-utils/server/servers' +import { + addVideoCommentReply, + addVideoCommentThread, deleteVideoComment, + getPluginTestPath, + installPlugin, removeVideo, + setAccessTokensToServers, + updateVideo, + uploadVideo, + viewVideo +} from '../../../shared/extra-utils' const expect = chai.expect describe('Test plugin action hooks', function () { - let server: ServerInfo + let servers: ServerInfo[] + let videoUUID: string + let threadId: number + + function checkHook (hook: string) { + return waitUntilLog(servers[0], 'Run hook ' + hook) + } before(async function () { this.timeout(30000) - server = await flushAndRunServer(1) - await setAccessTokensToServers([ server ]) + servers = await flushAndRunMultipleServers(2) + await setAccessTokensToServers(servers) + + await installPlugin({ + url: servers[0].url, + accessToken: servers[0].accessToken, + path: getPluginTestPath() + }) + + await killallServers([ servers[0] ]) + + await reRunServer(servers[0]) }) - it('Should execute ', async function () { - // empty + it('Should run action:application.listening', async function () { + await checkHook('action:application.listening') + }) + + it('Should run action:api.video.uploaded', async function () { + const res = await uploadVideo(servers[0].url, servers[0].accessToken, { name: 'video' }) + videoUUID = res.body.video.uuid + + await checkHook('action:api.video.uploaded') + }) + + it('Should run action:api.video.updated', async function () { + await updateVideo(servers[0].url, servers[0].accessToken, videoUUID, { name: 'video updated' }) + + await checkHook('action:api.video.updated') + }) + + it('Should run action:api.video.viewed', async function () { + await viewVideo(servers[0].url, videoUUID) + + await checkHook('action:api.video.viewed') + }) + + it('Should run action:api.video-thread.created', async function () { + const res = await addVideoCommentThread(servers[0].url, servers[0].accessToken, videoUUID, 'thread') + threadId = res.body.comment.id + + await checkHook('action:api.video-thread.created') + }) + + it('Should run action:api.video-comment-reply.created', async function () { + await addVideoCommentReply(servers[0].url, servers[0].accessToken, videoUUID, threadId, 'reply') + + await checkHook('action:api.video-comment-reply.created') + }) + + it('Should run action:api.video-comment.deleted', async function () { + await deleteVideoComment(servers[0].url, servers[0].accessToken, videoUUID, threadId) + + await checkHook('action:api.video-comment.deleted') + }) + + it('Should run action:api.video.deleted', async function () { + await removeVideo(servers[0].url, servers[0].accessToken, videoUUID) + + await checkHook('action:api.video.deleted') }) after(async function () { - await cleanupTests([ server ]) + await cleanupTests(servers) }) }) diff --git a/server/tests/plugins/filter-hooks.ts b/server/tests/plugins/filter-hooks.ts index 500728712..4fc2c437b 100644 --- a/server/tests/plugins/filter-hooks.ts +++ b/server/tests/plugins/filter-hooks.ts @@ -2,26 +2,79 @@ import * as chai from 'chai' import 'mocha' -import { cleanupTests, flushAndRunServer, ServerInfo } from '../../../shared/extra-utils/server/servers' -import { setAccessTokensToServers } from '../../../shared/extra-utils' +import { + cleanupTests, + flushAndRunMultipleServers, + flushAndRunServer, killallServers, reRunServer, + ServerInfo, + waitUntilLog +} from '../../../shared/extra-utils/server/servers' +import { + addVideoCommentReply, + addVideoCommentThread, deleteVideoComment, + getPluginTestPath, getVideosList, + installPlugin, removeVideo, + setAccessTokensToServers, + updateVideo, + uploadVideo, + viewVideo, + getVideosListPagination, getVideo +} from '../../../shared/extra-utils' const expect = chai.expect describe('Test plugin filter hooks', function () { - let server: ServerInfo + let servers: ServerInfo[] + let videoUUID: string + let threadId: number before(async function () { this.timeout(30000) - server = await flushAndRunServer(1) - await setAccessTokensToServers([ server ]) + servers = await flushAndRunMultipleServers(2) + await setAccessTokensToServers(servers) + + await installPlugin({ + url: servers[0].url, + accessToken: servers[0].accessToken, + path: getPluginTestPath() + }) + + await installPlugin({ + url: servers[0].url, + accessToken: servers[0].accessToken, + path: getPluginTestPath('-two') + }) + + for (let i = 0; i < 10; i++) { + await uploadVideo(servers[0].url, servers[0].accessToken, { name: 'default video ' + i }) + } + + const res = await getVideosList(servers[0].url) + videoUUID = res.body.data[0].uuid }) - it('Should execute ', async function () { - // empty + it('Should run filter:api.videos.list.params hook', async function () { + const res = await getVideosListPagination(servers[0].url, 0, 2) + + // 2 plugins do +1 to the count parameter + expect(res.body.data).to.have.lengthOf(4) + }) + + it('Should run filter:api.videos.list.result', async function () { + const res = await getVideosListPagination(servers[0].url, 0, 0) + + // Plugin do +1 to the total result + expect(res.body.total).to.equal(11) + }) + + it('Should run filter:api.video.get.result', async function () { + const res = await getVideo(servers[0].url, videoUUID) + + expect(res.body.name).to.contain('<3') }) after(async function () { - await cleanupTests([ server ]) + await cleanupTests(servers) }) }) -- cgit v1.2.3