]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Fix tests timeout
authorChocobozzz <me@florianbigard.com>
Fri, 11 Dec 2020 09:36:05 +0000 (10:36 +0100)
committerChocobozzz <chocobozzz@cpy.re>
Mon, 14 Dec 2020 08:11:27 +0000 (09:11 +0100)
13 files changed:
scripts/ci.sh
server/tests/api/check-params/live.ts
server/tests/api/check-params/video-captions.ts
server/tests/api/live/live-permanent.ts
server/tests/api/live/live-save-replay.ts
server/tests/api/notifications/moderation-notifications.ts
server/tests/api/notifications/user-notifications.ts
server/tests/api/users/users-verification.ts
server/tests/api/videos/video-captions.ts
server/tests/api/videos/video-playlists.ts
server/tests/api/videos/videos-views-cleaner.ts
server/tests/plugins/plugin-helpers.ts
shared/extra-utils/videos/live.ts

index dd4c283565662a3d8d43a587fcea21bbb3344c4c..9399a0f590128a5eeeb580784abe50b438a27f61 100755 (executable)
@@ -27,7 +27,7 @@ runTest () {
 
     joblog="$jobname-ci.log"
 
-    parallel -j $jobs  \
+    parallel -j $jobs --retries $retries \
         "echo Trying {} >> $joblog; npm run mocha -- -c --timeout 30000 --exit --require ts-node/register --require tsconfig-paths/register --bail {}" \
         ::: $files
 
@@ -40,7 +40,7 @@ findTestFiles () {
 }
 
 if [ "$1" = "misc" ]; then
-    npm run build -- --light
+    npm run build
 
     feedsFiles=$(findTestFiles server/tests/feeds)
     helperFiles=$(findTestFiles server/tests/helpers)
index 7e76caf6e3b16443ee0a0a3635c835ff02071313..a5493572bad9946c1f2a00ed4aa06c04b12b6b1a 100644 (file)
@@ -402,7 +402,7 @@ describe('Test video lives API validator', function () {
     })
 
     it('Should fail to update a live if it has already started', async function () {
-      this.timeout(20000)
+      this.timeout(40000)
 
       const resLive = await getLive(server.url, server.accessToken, videoId)
       const live: LiveVideo = resLive.body
@@ -416,7 +416,7 @@ describe('Test video lives API validator', function () {
     })
 
     it('Should fail to stream twice in the save live', async function () {
-      this.timeout(30000)
+      this.timeout(40000)
 
       const resLive = await getLive(server.url, server.accessToken, videoId)
       const live: LiveVideo = resLive.body
index e42e8db81ba9c24fcbc5ae9d3a8714688bb793b0..2f049c03d20022cb12de594d694fca71e7a71d0f 100644 (file)
@@ -58,7 +58,7 @@ describe('Test video captions API validator', function () {
       await makeUploadRequest({
         method: 'PUT',
         url: server.url,
-        path: path + '4da6fde3-88f7-4d16-b119-108df563d0b06/captions',
+        path: path + '4da6fde3-88f7-4d16-b119-108df563d0b06/captions/fr',
         token: server.accessToken,
         fields,
         attaches
@@ -69,10 +69,11 @@ describe('Test video captions API validator', function () {
       await makeUploadRequest({
         method: 'PUT',
         url: server.url,
-        path: path + '4da6fde3-88f7-4d16-b119-108df5630b06/captions',
+        path: path + '4da6fde3-88f7-4d16-b119-108df5630b06/captions/fr',
         token: server.accessToken,
         fields,
-        attaches
+        attaches,
+        statusCodeExpected: 404
       })
     })
 
index 2701c65e3d2f8d965ed8bb9c89c7f955100c2f18..9e6c6cf70fe0ff9baa49c1f17dc68001eca1cb71 100644 (file)
@@ -20,7 +20,8 @@ import {
   updateLive,
   wait,
   waitJobs,
-  waitUntilLivePublished
+  waitUntilLivePublished,
+  waitUntilLiveWaiting
 } from '../../../../shared/extra-utils'
 
 const expect = chai.expect
@@ -111,7 +112,7 @@ describe('Permenant live', function () {
   })
 
   it('Should stream into this permanent live', async function () {
-    this.timeout(40000)
+    this.timeout(60000)
 
     const command = await sendRTMPStreamInVideo(servers[0].url, servers[0].accessToken, videoUUID)
 
@@ -122,6 +123,7 @@ describe('Permenant live', function () {
     await checkVideoState(videoUUID, VideoState.PUBLISHED)
 
     await stopFfmpeg(command)
+    await waitUntilLiveWaiting(servers[0].url, servers[0].accessToken, videoUUID)
 
     await waitJobs(servers)
   })
index bd683b2bfc1f69dfe94cb58f7f18264aa93e438e..6cd8cc23f27b25b46ed133eff516dc2aed776a91 100644 (file)
@@ -136,7 +136,7 @@ describe('Save replay setting', function () {
     })
 
     it('Should correctly delete the video files after the stream ended', async function () {
-      this.timeout(30000)
+      this.timeout(40000)
 
       await stopFfmpeg(ffmpegCommand)
 
@@ -146,6 +146,8 @@ describe('Save replay setting', function () {
       await checkVideosExist(liveVideoUUID, false, HttpStatusCode.OK_200)
       await checkVideoState(liveVideoUUID, VideoState.LIVE_ENDED)
 
+      await waitJobs(servers)
+
       // No resolutions saved since we did not save replay
       await checkLiveCleanup(servers[0], liveVideoUUID, [])
     })
index 24c91a365eb380fbc61db8ce99125d2ecab2d519..81f02ff993d9d71bc0a9f8eec4313d0eba7cb773 100644 (file)
@@ -546,7 +546,7 @@ describe('Test moderation notifications', function () {
     })
 
     it('Should send unblacklist but not published/subscription notes after unblacklisted if scheduled update pending', async function () {
-      this.timeout(20000)
+      this.timeout(40000)
 
       const updateAt = new Date(new Date().getTime() + 1000000)
 
@@ -578,7 +578,7 @@ describe('Test moderation notifications', function () {
     })
 
     it('Should not send publish/subscription notifications after scheduled update if video still auto-blacklisted', async function () {
-      this.timeout(20000)
+      this.timeout(40000)
 
       // In 2 seconds
       const updateAt = new Date(new Date().getTime() + 2000)
@@ -604,7 +604,7 @@ describe('Test moderation notifications', function () {
     })
 
     it('Should not send a notification to moderators on new video without auto-blacklist', async function () {
-      this.timeout(20000)
+      this.timeout(40000)
 
       const name = 'video without auto-blacklist ' + uuidv4()
 
index edc95b0699631aac611d9e18435adb0684bda23e..6e7e7b19fc811c582bc1ffa420f46ccd1c5e2fb2 100644 (file)
@@ -65,7 +65,7 @@ describe('Test user notifications', function () {
     })
 
     it('Should not send notifications if the user does not follow the video publisher', async function () {
-      this.timeout(30000)
+      this.timeout(50000)
 
       await uploadRandomVideoOnServers(servers, 1)
 
@@ -97,7 +97,7 @@ describe('Test user notifications', function () {
     })
 
     it('Should send a new video notification on a scheduled publication', async function () {
-      this.timeout(30000)
+      this.timeout(50000)
 
       // In 2 seconds
       const updateAt = new Date(new Date().getTime() + 2000)
@@ -136,7 +136,7 @@ describe('Test user notifications', function () {
     })
 
     it('Should not send a notification before the video is published', async function () {
-      this.timeout(30000)
+      this.timeout(50000)
 
       const updateAt = new Date(new Date().getTime() + 1000000)
 
@@ -154,7 +154,7 @@ describe('Test user notifications', function () {
     })
 
     it('Should send a new video notification when a video becomes public', async function () {
-      this.timeout(30000)
+      this.timeout(50000)
 
       const data = { privacy: VideoPrivacy.PRIVATE }
       const { name, uuid } = await uploadRandomVideoOnServers(servers, 1, data)
@@ -168,7 +168,7 @@ describe('Test user notifications', function () {
     })
 
     it('Should send a new video notification when a remote video becomes public', async function () {
-      this.timeout(30000)
+      this.timeout(50000)
 
       const data = { privacy: VideoPrivacy.PRIVATE }
       const { name, uuid } = await uploadRandomVideoOnServers(servers, 2, data)
@@ -182,7 +182,7 @@ describe('Test user notifications', function () {
     })
 
     it('Should not send a new video notification when a video becomes unlisted', async function () {
-      this.timeout(30000)
+      this.timeout(50000)
 
       const data = { privacy: VideoPrivacy.PRIVATE }
       const { name, uuid } = await uploadRandomVideoOnServers(servers, 1, data)
@@ -193,7 +193,7 @@ describe('Test user notifications', function () {
     })
 
     it('Should not send a new video notification when a remote video becomes unlisted', async function () {
-      this.timeout(30000)
+      this.timeout(50000)
 
       const data = { privacy: VideoPrivacy.PRIVATE }
       const { name, uuid } = await uploadRandomVideoOnServers(servers, 2, data)
@@ -237,7 +237,7 @@ describe('Test user notifications', function () {
     })
 
     it('Should not send a notification if transcoding is not enabled', async function () {
-      this.timeout(30000)
+      this.timeout(50000)
 
       const { name, uuid } = await uploadRandomVideoOnServers(servers, 1)
       await waitJobs(servers)
@@ -416,7 +416,7 @@ describe('Test user notifications', function () {
     })
 
     it('Should notify when a local channel is following one of our channel', async function () {
-      this.timeout(30000)
+      this.timeout(50000)
 
       await addUserSubscription(servers[0].url, servers[0].accessToken, 'user_1_channel@localhost:' + servers[0].port)
       await waitJobs(servers)
@@ -427,7 +427,7 @@ describe('Test user notifications', function () {
     })
 
     it('Should notify when a remote channel is following one of our channel', async function () {
-      this.timeout(30000)
+      this.timeout(50000)
 
       await addUserSubscription(servers[1].url, servers[1].accessToken, 'user_1_channel@localhost:' + servers[0].port)
       await waitJobs(servers)
@@ -439,7 +439,7 @@ describe('Test user notifications', function () {
 
     // PeerTube does not support accout -> account follows
     // it('Should notify when a local account is following one of our channel', async function () {
-    //   this.timeout(30000)
+    //   this.timeout(50000)
     //
     //   await addUserSubscription(servers[0].url, servers[0].accessToken, 'user_1@localhost:' + servers[0].port)
     //
@@ -449,7 +449,7 @@ describe('Test user notifications', function () {
     // })
 
     // it('Should notify when a remote account is following one of our channel', async function () {
-    //   this.timeout(30000)
+    //   this.timeout(50000)
     //
     //   await addUserSubscription(servers[1].url, servers[1].accessToken, 'user_1@localhost:' + servers[0].port)
     //
index 675ebf690e8eea6b3582dc0c59b6caf013fb16c3..e05acdd7294dc433762c2e8917b252fd225ef55c 100644 (file)
@@ -55,7 +55,8 @@ describe('Test users account verification', function () {
   })
 
   it('Should register user and send verification email if verification required', async function () {
-    this.timeout(5000)
+    this.timeout(30000)
+
     await updateCustomSubConfig(server.url, server.accessToken, {
       signup: {
         enabled: true,
index 00e04d69d3dcac19222bd8dd44b89d70a9653138..5b36dc0218c558643507aec59ac4f5d006a16b9e 100644 (file)
@@ -28,7 +28,7 @@ describe('Test video captions', function () {
   let videoUUID: string
 
   before(async function () {
-    this.timeout(30000)
+    this.timeout(60000)
 
     servers = await flushAndRunMultipleServers(2)
 
index 0a96ea9a0047f7a722a8a1f7800973889a62618b..9dad58c8cc9626560e49647515e5768efdc77842 100644 (file)
@@ -1,7 +1,8 @@
 /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
 
-import * as chai from 'chai'
 import 'mocha'
+import * as chai from 'chai'
+import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
 import {
   addVideoChannel,
   addVideoInPlaylist,
@@ -44,13 +45,6 @@ import {
   wait,
   waitJobs
 } from '../../../../shared/extra-utils'
-import { VideoPlaylistPrivacy } from '../../../../shared/models/videos/playlist/video-playlist-privacy.model'
-import { VideoPlaylist } from '../../../../shared/models/videos/playlist/video-playlist.model'
-import { VideoPrivacy } from '../../../../shared/models/videos'
-import { VideoPlaylistType } from '../../../../shared/models/videos/playlist/video-playlist-type.model'
-import { VideoExistInPlaylist } from '../../../../shared/models/videos/playlist/video-exist-in-playlist.model'
-import { User } from '../../../../shared/models/users'
-import { VideoPlaylistElement, VideoPlaylistElementType } from '../../../../shared/models/videos/playlist/video-playlist-element.model'
 import {
   addAccountToAccountBlocklist,
   addAccountToServerBlocklist,
@@ -61,7 +55,13 @@ import {
   removeServerFromAccountBlocklist,
   removeServerFromServerBlocklist
 } from '../../../../shared/extra-utils/users/blocklist'
-import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
+import { User } from '../../../../shared/models/users'
+import { VideoPrivacy } from '../../../../shared/models/videos'
+import { VideoExistInPlaylist } from '../../../../shared/models/videos/playlist/video-exist-in-playlist.model'
+import { VideoPlaylistElement, VideoPlaylistElementType } from '../../../../shared/models/videos/playlist/video-playlist-element.model'
+import { VideoPlaylistPrivacy } from '../../../../shared/models/videos/playlist/video-playlist-privacy.model'
+import { VideoPlaylistType } from '../../../../shared/models/videos/playlist/video-playlist-type.model'
+import { VideoPlaylist } from '../../../../shared/models/videos/playlist/video-playlist.model'
 
 const expect = chai.expect
 
@@ -123,24 +123,18 @@ describe('Test video playlists', function () {
     await doubleFollow(servers[0], servers[2])
 
     {
-      const serverPromises: Promise<any>[][] = []
+      servers[0].videos = []
+      servers[1].videos = []
+      servers[2].videos = []
 
       for (const server of servers) {
-        const videoPromises: Promise<any>[] = []
-
         for (let i = 0; i < 7; i++) {
-          videoPromises.push(
-            uploadVideo(server.url, server.accessToken, { name: `video ${i} server ${server.serverNumber}`, nsfw: false })
-              .then(res => res.body.video)
-          )
-        }
+          const name = `video ${i} server ${server.serverNumber}`
+          const resVideo = await uploadVideo(server.url, server.accessToken, { name, nsfw: false })
 
-        serverPromises.push(videoPromises)
+          server.videos.push(resVideo.body.video)
+        }
       }
-
-      servers[0].videos = await Promise.all(serverPromises[0])
-      servers[1].videos = await Promise.all(serverPromises[1])
-      servers[2].videos = await Promise.all(serverPromises[2])
     }
 
     nsfwVideoServer1 = (await uploadVideoAndGetId({ server: servers[0], videoName: 'NSFW video', nsfw: true })).id
index c5b28540cc0482e90c4597bdc8c06cd690ce61ba..b89f332171e90e5a12ed9db4a39f73068ba2b758 100644 (file)
@@ -27,7 +27,7 @@ describe('Test video views cleaner', function () {
   let videoIdServer2: string
 
   before(async function () {
-    this.timeout(50000)
+    this.timeout(120000)
 
     servers = await flushAndRunMultipleServers(2)
     await setAccessTokensToServers(servers)
index c0d95e1e0cad3f251d8dae877e8376e79cfce66a..a585e30200f0c3d7c9b5e70a30a2af12420d6167 100644 (file)
@@ -180,7 +180,7 @@ describe('Test plugin helpers', function () {
     })
 
     it('Should remove a video after a view', async function () {
-      this.timeout(20000)
+      this.timeout(40000)
 
       // Should not throw -> video exists
       await getVideo(servers[0].url, videoUUID)
index cbcfc09e4d268ff5b42052f05bf5ba086673a081..98f67a9bb05d6e70c5ac5728596087ed333c9c29 100644 (file)
@@ -119,7 +119,7 @@ async function testFfmpegStreamError (command: ffmpeg.FfmpegCommand, shouldHaveE
   let error: Error
 
   try {
-    await waitFfmpegUntilError(command, 15000)
+    await waitFfmpegUntilError(command, 25000)
   } catch (err) {
     error = err
   }
@@ -140,6 +140,10 @@ function waitUntilLivePublished (url: string, token: string, videoId: number | s
   return waitUntilLiveState(url, token, videoId, VideoState.PUBLISHED)
 }
 
+function waitUntilLiveWaiting (url: string, token: string, videoId: number | string) {
+  return waitUntilLiveState(url, token, videoId, VideoState.WAITING_FOR_LIVE)
+}
+
 function waitUntilLiveEnded (url: string, token: string, videoId: number | string) {
   return waitUntilLiveState(url, token, videoId, VideoState.LIVE_ENDED)
 }
@@ -206,6 +210,7 @@ export {
   checkLiveCleanup,
   waitUntilLiveSegmentGeneration,
   stopFfmpeg,
+  waitUntilLiveWaiting,
   sendRTMPStreamInVideo,
   waitUntilLiveEnded,
   waitFfmpegUntilError,