]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/tests/api/live/live-views.ts
Move test functions outside extra-utils
[github/Chocobozzz/PeerTube.git] / server / tests / api / live / live-views.ts
index 5e3a79c6415f9511e33fcc8f501bfabbb47dfe34..446d0913cb933beb33b1b3955c802dccd24e4ad7 100644 (file)
@@ -3,6 +3,7 @@
 import 'mocha'
 import * as chai from 'chai'
 import { FfmpegCommand } from 'fluent-ffmpeg'
+import { wait } from '@shared/core-utils'
 import { VideoPrivacy } from '@shared/models'
 import {
   cleanupTests,
@@ -12,14 +13,13 @@ import {
   setAccessTokensToServers,
   setDefaultVideoChannel,
   stopFfmpeg,
-  wait,
   waitJobs,
   waitUntilLivePublishedOnAllServers
-} from '../../../../shared/extra-utils'
+} from '@shared/server-commands'
 
 const expect = chai.expect
 
-describe('Test live', function () {
+describe('Live views', function () {
   let servers: PeerTubeServer[] = []
 
   before(async function () {
@@ -47,79 +47,86 @@ describe('Test live', function () {
     await doubleFollow(servers[0], servers[1])
   })
 
-  describe('Live views', function () {
-    let liveVideoId: string
-    let command: FfmpegCommand
+  let liveVideoId: string
+  let command: FfmpegCommand
 
-    async function countViews (expected: number) {
-      for (const server of servers) {
-        const video = await server.videos.get({ id: liveVideoId })
-        expect(video.views).to.equal(expected)
-      }
+  async function countViewers (expectedViewers: number) {
+    for (const server of servers) {
+      const video = await server.videos.get({ id: liveVideoId })
+      expect(video.viewers).to.equal(expectedViewers)
     }
+  }
 
-    before(async function () {
-      this.timeout(30000)
+  async function countViews (expectedViews: number) {
+    for (const server of servers) {
+      const video = await server.videos.get({ id: liveVideoId })
+      expect(video.views).to.equal(expectedViews)
+    }
+  }
 
-      const liveAttributes = {
-        name: 'live video',
-        channelId: servers[0].store.channel.id,
-        privacy: VideoPrivacy.PUBLIC
-      }
+  before(async function () {
+    this.timeout(30000)
 
-      const live = await servers[0].live.create({ fields: liveAttributes })
-      liveVideoId = live.uuid
+    const liveAttributes = {
+      name: 'live video',
+      channelId: servers[0].store.channel.id,
+      privacy: VideoPrivacy.PUBLIC
+    }
 
-      command = await servers[0].live.sendRTMPStreamInVideo({ videoId: liveVideoId })
-      await waitUntilLivePublishedOnAllServers(servers, liveVideoId)
-      await waitJobs(servers)
-    })
+    const live = await servers[0].live.create({ fields: liveAttributes })
+    liveVideoId = live.uuid
 
-    it('Should display no views for a live', async function () {
-      await countViews(0)
-    })
+    command = await servers[0].live.sendRTMPStreamInVideo({ videoId: liveVideoId })
+    await waitUntilLivePublishedOnAllServers(servers, liveVideoId)
+    await waitJobs(servers)
+  })
 
-    it('Should view a live twice and display 1 view', async function () {
-      this.timeout(30000)
+  it('Should display no views and viewers for a live', async function () {
+    await countViews(0)
+    await countViewers(0)
+  })
 
-      await servers[0].videos.view({ id: liveVideoId })
-      await servers[0].videos.view({ id: liveVideoId })
+  it('Should view a live twice and display 1 view/viewer', async function () {
+    this.timeout(30000)
 
-      await wait(7000)
+    await servers[0].videos.view({ id: liveVideoId })
+    await servers[0].videos.view({ id: liveVideoId })
 
-      await waitJobs(servers)
+    await waitJobs(servers)
+    await countViewers(1)
 
-      await countViews(1)
-    })
+    await wait(7000)
+    await countViews(1)
+  })
 
-    it('Should wait and display 0 views', async function () {
-      this.timeout(30000)
+  it('Should wait and display 0 viewers while still have 1 view', async function () {
+    this.timeout(30000)
 
-      await wait(12000)
-      await waitJobs(servers)
+    await wait(12000)
+    await waitJobs(servers)
 
-      await countViews(0)
-    })
+    await countViews(1)
+    await countViewers(0)
+  })
 
-    it('Should view a live on a remote and on local and display 2 views', async function () {
-      this.timeout(30000)
+  it('Should view a live on a remote and on local and display 2 viewers and 3 views', async function () {
+    this.timeout(30000)
 
-      await servers[0].videos.view({ id: liveVideoId })
-      await servers[1].videos.view({ id: liveVideoId })
-      await servers[1].videos.view({ id: liveVideoId })
+    await servers[0].videos.view({ id: liveVideoId })
+    await servers[1].videos.view({ id: liveVideoId })
+    await servers[1].videos.view({ id: liveVideoId })
+    await waitJobs(servers)
 
-      await wait(7000)
-      await waitJobs(servers)
+    await countViewers(2)
 
-      await countViews(2)
-    })
+    await wait(7000)
+    await waitJobs(servers)
 
-    after(async function () {
-      await stopFfmpeg(command)
-    })
+    await countViews(3)
   })
 
   after(async function () {
+    await stopFfmpeg(command)
     await cleanupTests(servers)
   })
 })