Add playlist updatedAt tests
authorChocobozzz <me@florianbigard.com>
Thu, 14 Mar 2019 08:19:03 +0000 (09:19 +0100)
committerChocobozzz <chocobozzz@cpy.re>
Mon, 18 Mar 2019 10:17:59 +0000 (11:17 +0100)
server/controllers/api/video-playlist.ts
server/tests/api/videos/video-playlists.ts
shared/utils/videos/video-playlists.ts

index 0a7ff92df21218490556173b825a7726ead4b4bd..c7dfc583b2120bc34f7d6e0140c70dea4acaabea 100644 (file)
@@ -292,7 +292,7 @@ async function addVideoInPlaylist (req: express.Request, res: express.Response)
       videoId: video.id
     }, { transaction: t })
 
-    videoPlaylist.updatedAt = new Date()
+    videoPlaylist.changed('updatedAt', true)
     await videoPlaylist.save({ transaction: t })
 
     await sendUpdateVideoPlaylist(videoPlaylist, t)
@@ -332,7 +332,7 @@ async function updateVideoPlaylistElement (req: express.Request, res: express.Re
 
     const element = await videoPlaylistElement.save({ transaction: t })
 
-    videoPlaylist.updatedAt = new Date()
+    videoPlaylist.changed('updatedAt', true)
     await videoPlaylist.save({ transaction: t })
 
     await sendUpdateVideoPlaylist(videoPlaylist, t)
@@ -356,7 +356,7 @@ async function removeVideoFromPlaylist (req: express.Request, res: express.Respo
     // Decrease position of the next elements
     await VideoPlaylistElementModel.increasePositionOf(videoPlaylist.id, positionToDelete, null, -1, t)
 
-    videoPlaylist.updatedAt = new Date()
+    videoPlaylist.changed('updatedAt', true)
     await videoPlaylist.save({ transaction: t })
 
     await sendUpdateVideoPlaylist(videoPlaylist, t)
@@ -401,7 +401,7 @@ async function reorderVideosPlaylist (req: express.Request, res: express.Respons
     // Decrease positions of elements after the old position of our ordered elements (decrease)
     await VideoPlaylistElementModel.increasePositionOf(videoPlaylist.id, oldPosition, null, -reorderLength, t)
 
-    videoPlaylist.updatedAt = new Date()
+    videoPlaylist.changed('updatedAt', true)
     await videoPlaylist.save({ transaction: t })
 
     await sendUpdateVideoPlaylist(videoPlaylist, t)
index 931491406e84dede6605ada43734169ef1453663..358a064ff37d4b4b8cc8d2b921f7782cc3e286bf 100644 (file)
@@ -664,6 +664,37 @@ describe('Test video playlists', function () {
     expect(obj[43000]).to.have.lengthOf(0)
   })
 
+  it('Should automatically update updatedAt field of playlists', async function () {
+    const server = servers[1]
+    const videoId = servers[1].videos[5].id
+
+    async function getPlaylistNames () {
+      const res = await getAccountPlaylistsListWithToken(server.url, server.accessToken, 'root', 0, 5, undefined, '-updatedAt')
+
+      return (res.body.data as VideoPlaylist[]).map(p => p.displayName)
+    }
+
+    const elementAttrs = { videoId }
+    await addVideoInPlaylist({ url: server.url, token: server.accessToken, playlistId: playlistServer2Id1, elementAttrs })
+    await addVideoInPlaylist({ url: server.url, token: server.accessToken, playlistId: playlistServer2Id2, elementAttrs })
+
+    const names1 = await getPlaylistNames()
+    expect(names1[0]).to.equal('playlist 3 updated')
+    expect(names1[1]).to.equal('playlist 2')
+
+    await removeVideoFromPlaylist({ url: server.url, token: server.accessToken, playlistId: playlistServer2Id1, videoId })
+
+    const names2 = await getPlaylistNames()
+    expect(names2[0]).to.equal('playlist 2')
+    expect(names2[1]).to.equal('playlist 3 updated')
+
+    await removeVideoFromPlaylist({ url: server.url, token: server.accessToken, playlistId: playlistServer2Id2, videoId })
+
+    const names3 = await getPlaylistNames()
+    expect(names3[0]).to.equal('playlist 3 updated')
+    expect(names3[1]).to.equal('playlist 2')
+  })
+
   it('Should delete some elements', async function () {
     this.timeout(30000)
 
index ad65bec5685973f215f7b75d56d44ea9457e1238..7568852dcb51b3f1e3de0b8c6d6854ec00541843 100644 (file)
@@ -68,14 +68,16 @@ function getAccountPlaylistsListWithToken (
   accountName: string,
   start: number,
   count: number,
-  playlistType?: VideoPlaylistType
+  playlistType?: VideoPlaylistType,
+  sort?: string
 ) {
   const path = '/api/v1/accounts/' + accountName + '/video-playlists'
 
   const query = {
     start,
     count,
-    playlistType
+    playlistType,
+    sort
   }
 
   return makeGetRequest({