+ describe('Playlist hooks', function () {
+ let playlistId: number
+ let videoId: number
+
+ before(async function () {
+ {
+ const { id } = await servers[0].playlists.create({
+ attributes: {
+ displayName: 'My playlist',
+ privacy: VideoPlaylistPrivacy.PRIVATE
+ }
+ })
+ playlistId = id
+ }
+
+ {
+ const { id } = await servers[0].videos.upload({ attributes: { name: 'my super name' } })
+ videoId = id
+ }
+ })
+
+ it('Should run action:api.video-playlist-element.created', async function () {
+ await servers[0].playlists.addElement({ playlistId, attributes: { videoId } })
+
+ await checkHook('action:api.video-playlist-element.created')
+ })
+ })
+
+ describe('Notification hook', function () {
+
+ it('Should run action:notifier.notification.created', async function () {
+ await checkHook('action:notifier.notification.created', false)
+ })
+ })
+
+ describe('Activity Pub hooks', function () {
+ let videoUUID: string
+
+ it('Should run action:activity-pub.remote-video.created', async function () {
+ this.timeout(30000)
+
+ const { uuid } = await servers[1].videos.quickUpload({ name: 'remote video' })
+ videoUUID = uuid
+
+ await servers[0].servers.waitUntilLog('action:activity-pub.remote-video.created - AP remote video - video remote video')
+ })
+
+ it('Should run action:activity-pub.remote-video.updated', async function () {
+ this.timeout(30000)
+
+ await servers[1].videos.update({ id: videoUUID, attributes: { name: 'remote video updated' } })
+
+ await servers[0].servers.waitUntilLog('action:activity-pub.remote-video.updated - AP remote video - video remote video', 1, false)
+ })
+ })
+