]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Fix hooks definition
authorChocobozzz <me@florianbigard.com>
Thu, 1 Jul 2021 14:47:14 +0000 (16:47 +0200)
committerChocobozzz <me@florianbigard.com>
Thu, 1 Jul 2021 14:47:14 +0000 (16:47 +0200)
server/lib/activitypub/send/utils.ts
server/models/actor/actor.ts
server/models/video/video-channel.ts
server/models/video/video.ts
server/tests/api/videos/resumable-upload.ts
server/tests/api/videos/video-channels.ts
shared/extra-utils/miscs/miscs.ts

index db0e91b717ba5ec8df5e7e3e5dea4a60575f451e..7cd8030e1ff4d27eb1e9c52de716ae5e15e457b8 100644 (file)
@@ -22,7 +22,9 @@ async function sendVideoRelatedActivity (activityBuilder: (audience: ActivityAud
 
   // Send to origin
   if (video.isOwned() === false) {
-    const accountActor = (video as MVideoAccountLight).VideoChannel?.Account?.Actor || await ActorModel.loadAccountActorByVideoId(video.id)
+    let accountActor: MActorLight = (video as MVideoAccountLight).VideoChannel?.Account?.Actor
+
+    if (!accountActor) accountActor = await ActorModel.loadAccountActorByVideoId(video.id, transaction)
 
     const audience = getRemoteVideoAudience(accountActor, actorsInvolvedInVideo)
     const activity = activityBuilder(audience)
index 0cd30f5451ad693ea8d65746c5db0b5cee4d22ab..8df49951d561ce66743f72c17f6260e442fccb97 100644 (file)
@@ -496,7 +496,7 @@ export class ActorModel extends Model<Partial<AttributesOnly<ActorModel>>> {
     }, { where, transaction })
   }
 
-  static loadAccountActorByVideoId (videoId: number): Promise<MActor> {
+  static loadAccountActorByVideoId (videoId: number, transaction: Transaction): Promise<MActor> {
     const query = {
       include: [
         {
@@ -520,7 +520,8 @@ export class ActorModel extends Model<Partial<AttributesOnly<ActorModel>>> {
             }
           ]
         }
-      ]
+      ],
+      transaction
     }
 
     return ActorModel.unscoped().findOne(query)
index f84b85290ef3ebfab6f8cacbc700404060a7c673..183e7448c4d06155ff8304d3085de57dc6b67d80 100644 (file)
@@ -291,8 +291,7 @@ export class VideoChannelModel extends Model<Partial<AttributesOnly<VideoChannel
   @BelongsTo(() => AccountModel, {
     foreignKey: {
       allowNull: false
-    },
-    hooks: true
+    }
   })
   Account: AccountModel
 
index 7a9e96210e00ae593df7ec3abddb4891fc5bb043..1e5648a36cbe383177816b5135311d0c7966e31f 100644 (file)
@@ -572,7 +572,6 @@ export class VideoModel extends Model<Partial<AttributesOnly<VideoModel>>> {
     foreignKey: {
       allowNull: true
     },
-    hooks: true,
     onDelete: 'cascade'
   })
   VideoChannel: VideoChannelModel
index af9221c43b94749f507dda9323b58f2d84162fc2..4fc3317dfc9aa27317c8db651cb97e5e4bac7e37 100644 (file)
@@ -8,6 +8,7 @@ import { HttpStatusCode } from '@shared/core-utils'
 import {
   buildAbsoluteFixturePath,
   buildServerDirectory,
+  cleanupTests,
   flushAndRunServer,
   getMyUserInformation,
   prepareResumableUpload,
@@ -184,4 +185,7 @@ describe('Test resumable upload', function () {
     })
   })
 
+  after(async function () {
+    await cleanupTests([ server ])
+  })
 })
index 7e7ad028cc72c5ba53a0a47badff07e049f90b8d..8650987777f77745ea7d1cbe1f02d3a478626eb8 100644 (file)
@@ -15,6 +15,7 @@ import {
   getVideoChannel,
   getVideoChannelVideos,
   setDefaultVideoChannel,
+  testFileExistsOrNot,
   testImage,
   updateVideo,
   updateVideoChannelImage,
@@ -53,6 +54,9 @@ describe('Test video channels', function () {
   let videoUUID: string
   let accountName: string
 
+  const avatarPaths: { [ port: number ]: string } = {}
+  const bannerPaths: { [ port: number ]: string } = {}
+
   before(async function () {
     this.timeout(60000)
 
@@ -287,9 +291,11 @@ describe('Test video channels', function () {
     for (const server of servers) {
       const videoChannel = await findChannel(server, secondVideoChannelId)
 
-      await testImage(server.url, 'avatar-resized', videoChannel.avatar.path, '.png')
+      avatarPaths[server.port] = videoChannel.avatar.path
+      await testImage(server.url, 'avatar-resized', avatarPaths[server.port], '.png')
+      await testFileExistsOrNot(server, 'avatars', basename(avatarPaths[server.port]), true)
 
-      const row = await getActorImage(server.internalServerNumber, basename(videoChannel.avatar.path))
+      const row = await getActorImage(server.internalServerNumber, basename(avatarPaths[server.port]))
       expect(row.height).to.equal(ACTOR_IMAGES_SIZE.AVATARS.height)
       expect(row.width).to.equal(ACTOR_IMAGES_SIZE.AVATARS.width)
     }
@@ -314,9 +320,11 @@ describe('Test video channels', function () {
       const res = await getVideoChannel(server.url, 'second_video_channel@' + servers[0].host)
       const videoChannel = res.body
 
-      await testImage(server.url, 'banner-resized', videoChannel.banner.path)
+      bannerPaths[server.port] = videoChannel.banner.path
+      await testImage(server.url, 'banner-resized', bannerPaths[server.port])
+      await testFileExistsOrNot(server, 'avatars', basename(bannerPaths[server.port]), true)
 
-      const row = await getActorImage(server.internalServerNumber, basename(videoChannel.banner.path))
+      const row = await getActorImage(server.internalServerNumber, basename(bannerPaths[server.port]))
       expect(row.height).to.equal(ACTOR_IMAGES_SIZE.BANNERS.height)
       expect(row.width).to.equal(ACTOR_IMAGES_SIZE.BANNERS.width)
     }
@@ -336,6 +344,7 @@ describe('Test video channels', function () {
 
     for (const server of servers) {
       const videoChannel = await findChannel(server, secondVideoChannelId)
+      await testFileExistsOrNot(server, 'avatars', basename(avatarPaths[server.port]), false)
 
       expect(videoChannel.avatar).to.be.null
     }
@@ -355,6 +364,7 @@ describe('Test video channels', function () {
 
     for (const server of servers) {
       const videoChannel = await findChannel(server, secondVideoChannelId)
+      await testFileExistsOrNot(server, 'avatars', basename(bannerPaths[server.port]), false)
 
       expect(videoChannel.banner).to.be.null
     }
index 1cb1cf4408189193c4b1ca59e8e8c667fd8a4fda..f20be8585186dd3813466c84e4e15774c9fd2cb8 100644 (file)
@@ -2,7 +2,7 @@
 
 import * as chai from 'chai'
 import * as ffmpeg from 'fluent-ffmpeg'
-import { ensureDir, pathExists, readFile, stat } from 'fs-extra'
+import { ensureDir, exists, pathExists, readFile, stat } from 'fs-extra'
 import { basename, dirname, isAbsolute, join, resolve } from 'path'
 import * as request from 'supertest'
 import * as WebTorrent from 'webtorrent'
@@ -60,8 +60,14 @@ async function testImage (url: string, imageName: string, imagePath: string, ext
   const minLength = body.length - ((30 * body.length) / 100)
   const maxLength = body.length + ((30 * body.length) / 100)
 
-  expect(data.length).to.be.above(minLength, "the generated image is way smaller than the recorded fixture")
-  expect(data.length).to.be.below(maxLength, "the generated image is way larger than the recorded fixture")
+  expect(data.length).to.be.above(minLength, 'the generated image is way smaller than the recorded fixture')
+  expect(data.length).to.be.below(maxLength, 'the generated image is way larger than the recorded fixture')
+}
+
+async function testFileExistsOrNot (server: { internalServerNumber: number }, directory: string, filePath: string, exist: boolean) {
+  const base = buildServerDirectory(server, directory)
+
+  expect(await pathExists(join(base, filePath))).to.equal(exist)
 }
 
 function isGithubCI () {
@@ -157,6 +163,7 @@ export {
   testImage,
   isGithubCI,
   buildAbsoluteFixturePath,
+  testFileExistsOrNot,
   root,
   generateHighBitrateVideo,
   generateVideoWithFramerate