]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Force video updatedAt update on update
authorChocobozzz <me@florianbigard.com>
Wed, 10 Nov 2021 13:34:02 +0000 (14:34 +0100)
committerChocobozzz <me@florianbigard.com>
Wed, 10 Nov 2021 13:34:02 +0000 (14:34 +0100)
server/controllers/api/videos/update.ts
server/tests/api/videos/multiple-servers.ts
shared/extra-utils/requests/requests.ts

index a98a3e67c15e2e74fc3ec1396f86805cd17c7fdc..07f9690ec07146da13d1812dc45a758dd254be7a 100644 (file)
@@ -99,6 +99,11 @@ export async function updateVideo (req: express.Request, res: express.Response)
         isNewVideo = await updateVideoPrivacy({ videoInstance, videoInfoToUpdate, hadPrivacyForFederation, transaction: t })
       }
 
+      // Force updatedAt attribute change
+      if (!videoInstance.changed()) {
+        await videoInstance.setAsRefreshed()
+      }
+
       const videoInstanceUpdated = await videoInstance.save(sequelizeOptions) as MVideoFullLight
 
       // Thumbnail & preview updates?
index 470bee45b60c8c98e5000f8a3071652d49d8d2d0..c6c2790649b6c74fb78167802a6ec020c21afea5 100644 (file)
@@ -667,6 +667,26 @@ describe('Test multiple servers', function () {
       }
     })
 
+    it('Should only update thumbnail and update updatedAt attribute', async function () {
+      this.timeout(10000)
+
+      const attributes = {
+        thumbnailfile: 'thumbnail.jpg'
+      }
+
+      updatedAtMin = new Date()
+      await servers[2].videos.update({ id: toRemove[0].id, attributes })
+
+      await waitJobs(servers)
+
+      for (const server of servers) {
+        const { data } = await server.videos.list()
+
+        const videoUpdated = data.find(video => video.name === 'my super video updated')
+        expect(new Date(videoUpdated.updatedAt)).to.be.greaterThan(updatedAtMin)
+      }
+    })
+
     it('Should remove the videos 3 and 3-2 by asking server 3 and correctly delete files', async function () {
       this.timeout(30000)
 
index 501e0b374b949ad613c26090fc768e2a29de0aee..b6b9024ed1460e14e93e1fff336df54d54063ade 100644 (file)
@@ -85,6 +85,7 @@ function makeUploadRequest (options: CommonRequestParams & {
 
   Object.keys(options.attaches || {}).forEach(attach => {
     const value = options.attaches[attach]
+    if (!value) return
 
     if (Array.isArray(value)) {
       req.attach(attach, buildAbsoluteFixturePath(value[0]), value[1])