]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/tests/cli/update-host.ts
Improve create import file job
[github/Chocobozzz/PeerTube.git] / server / tests / cli / update-host.ts
index af9703b32053fb28aeda6902553728e8edac7622..ad56f7b1b4e8cf7dcfba0437cb95181485d14085 100644 (file)
@@ -1,5 +1,8 @@
+/* tslint:disable:no-unused-expression */
+
 import 'mocha'
 import * as chai from 'chai'
+import { VideoDetails } from '../../../shared/models/videos'
 const expect = chai.expect
 
 import {
@@ -12,14 +15,16 @@ import {
   runServer,
   ServerInfo,
   setAccessTokensToServers,
-  uploadVideo
+  uploadVideo,
+  wait,
+  getVideo
 } from '../utils'
 
 describe('Test update host scripts', function () {
   let server: ServerInfo
 
   before(async function () {
-    this.timeout(30000)
+    this.timeout(60000)
 
     await flushTests()
 
@@ -28,36 +33,51 @@ describe('Test update host scripts', function () {
         port: 9256
       }
     }
-    server = await runServer(1, overrideConfig)
+    // Run server 2 to have transcoding enabled
+    server = await runServer(2, overrideConfig)
     await setAccessTokensToServers([ server ])
 
     // Upload two videos for our needs
     const videoAttributes = {}
     await uploadVideo(server.url, server.accessToken, videoAttributes)
     await uploadVideo(server.url, server.accessToken, videoAttributes)
+    await wait(30000)
   })
 
   it('Should update torrent hosts', async function () {
-    this.timeout(20000)
+    this.timeout(30000)
 
     killallServers([ server ])
-    server = await runServer(1)
+    // Run server with standard configuration
+    server = await runServer(2)
 
     const env = getEnvCli(server)
     await execCLI(`${env} npm run update-host`)
 
     const res = await getVideosList(server.url)
     const videos = res.body.data
+    expect(videos).to.have.lengthOf(2)
+
+    for (const video of videos) {
+      const res2 = await getVideo(server.url, video.id)
+      const videoDetails: VideoDetails = res2.body
 
-    expect(videos[0].files[0].magnetUri).to.contain('localhost%3A9001%2Ftracker%2Fsocket')
-    expect(videos[0].files[0].magnetUri).to.contain('localhost%3A9001%2Fstatic%2Fwebseed%2F')
+      expect(videoDetails.files).to.have.lengthOf(4)
 
-    expect(videos[1].files[0].magnetUri).to.contain('localhost%3A9001%2Ftracker%2Fsocket')
-    expect(videos[1].files[0].magnetUri).to.contain('localhost%3A9001%2Fstatic%2Fwebseed%2F')
+      for (const file of videoDetails.files) {
+        expect(file.magnetUri).to.contain('localhost%3A9002%2Ftracker%2Fsocket')
+        expect(file.magnetUri).to.contain('localhost%3A9002%2Fstatic%2Fwebseed%2F')
 
-    const torrent = await parseTorrentVideo(server, videos[0].uuid)
-    expect(torrent.announce[0]).to.equal('ws://localhost:9001/tracker/socket')
-    expect(torrent.urlList[0]).to.contain('http://localhost:9001/static/webseed')
+        const torrent = await parseTorrentVideo(server, videoDetails.uuid, file.resolution.id)
+        const announceWS = torrent.announce.find(a => a === 'ws://localhost:9002/tracker/socket')
+        expect(announceWS).to.not.be.undefined
+
+        const announceHttp = torrent.announce.find(a => a === 'http://localhost:9002/tracker/announce')
+        expect(announceHttp).to.not.be.undefined
+
+        expect(torrent.urlList[0]).to.contain('http://localhost:9002/static/webseed')
+      }
+    }
   })
 
   after(async function () {