]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/tests/api/live/live-save-replay.ts
Merge branch 'release/4.2.0' into develop
[github/Chocobozzz/PeerTube.git] / server / tests / api / live / live-save-replay.ts
index 7ddcb04ef6bbee6c5bf4913d94ec815a049d9093..007af51e9669d2edd9c4908a29b569fc25888d5d 100644 (file)
@@ -441,6 +441,40 @@ describe('Save replay setting', function () {
       await checkVideosExist(liveVideoUUID, false, HttpStatusCode.NOT_FOUND_404)
       await checkLiveCleanup(servers[0], liveVideoUUID, [])
     })
+
+    it('Should correctly save replays with multiple sessions', async function () {
+      this.timeout(120000)
+
+      liveVideoUUID = await createLiveWrapper({ permanent: true, replay: true })
+      await waitJobs(servers)
+
+      // Streaming session #1
+      ffmpegCommand = await servers[0].live.sendRTMPStreamInVideo({ videoId: liveVideoUUID })
+      await waitUntilLivePublishedOnAllServers(servers, liveVideoUUID)
+      await stopFfmpeg(ffmpegCommand)
+      await servers[0].live.waitUntilWaiting({ videoId: liveVideoUUID })
+
+      // Streaming session #2
+      ffmpegCommand = await servers[0].live.sendRTMPStreamInVideo({ videoId: liveVideoUUID })
+      await waitUntilLivePublishedOnAllServers(servers, liveVideoUUID)
+      await stopFfmpeg(ffmpegCommand)
+      await waitUntilLiveWaitingOnAllServers(servers, liveVideoUUID)
+
+      // Wait for replays
+      await waitJobs(servers)
+
+      const { total, data: sessions } = await servers[0].live.listSessions({ videoId: liveVideoUUID })
+
+      expect(total).to.equal(2)
+      expect(sessions).to.have.lengthOf(2)
+
+      for (const session of sessions) {
+        expect(session.error).to.be.null
+        expect(session.replayVideo).to.exist
+
+        await servers[0].videos.get({ id: session.replayVideo.uuid })
+      }
+    })
   })
 
   after(async function () {