aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/tests/api/server/redundancy.ts
diff options
context:
space:
mode:
Diffstat (limited to 'server/tests/api/server/redundancy.ts')
-rw-r--r--server/tests/api/server/redundancy.ts63
1 files changed, 55 insertions, 8 deletions
diff --git a/server/tests/api/server/redundancy.ts b/server/tests/api/server/redundancy.ts
index 211570d2f..6574e8ea9 100644
--- a/server/tests/api/server/redundancy.ts
+++ b/server/tests/api/server/redundancy.ts
@@ -14,7 +14,7 @@ import {
14 setAccessTokensToServers, 14 setAccessTokensToServers,
15 uploadVideo, 15 uploadVideo,
16 wait, 16 wait,
17 root, viewVideo 17 root, viewVideo, immutableAssign
18} from '../../utils' 18} from '../../utils'
19import { waitJobs } from '../../utils/server/jobs' 19import { waitJobs } from '../../utils/server/jobs'
20import * as magnetUtil from 'magnet-uri' 20import * as magnetUtil from 'magnet-uri'
@@ -39,14 +39,14 @@ function checkMagnetWebseeds (file: { magnetUri: string, resolution: { id: numbe
39 } 39 }
40} 40}
41 41
42async function runServers (strategy: VideoRedundancyStrategy) { 42async function runServers (strategy: VideoRedundancyStrategy, additionalParams: any = {}) {
43 const config = { 43 const config = {
44 redundancy: { 44 redundancy: {
45 videos: [ 45 videos: [
46 { 46 immutableAssign({
47 strategy: strategy, 47 strategy: strategy,
48 size: '100KB' 48 size: '100KB'
49 } 49 }, additionalParams)
50 ] 50 ]
51 } 51 }
52 } 52 }
@@ -153,11 +153,11 @@ describe('Test videos redundancy', function () {
153 return check1WebSeed() 153 return check1WebSeed()
154 }) 154 })
155 155
156 it('Should enable redundancy on server 1', async function () { 156 it('Should enable redundancy on server 1', function () {
157 return enableRedundancy() 157 return enableRedundancy()
158 }) 158 })
159 159
160 it('Should have 2 webseed on the first video', async function () { 160 it('Should have 2 webseed on the first video', function () {
161 this.timeout(40000) 161 this.timeout(40000)
162 162
163 return check2Webseeds() 163 return check2Webseeds()
@@ -180,11 +180,58 @@ describe('Test videos redundancy', function () {
180 return check1WebSeed() 180 return check1WebSeed()
181 }) 181 })
182 182
183 it('Should enable redundancy on server 1', async function () { 183 it('Should enable redundancy on server 1', function () {
184 return enableRedundancy() 184 return enableRedundancy()
185 }) 185 })
186 186
187 it('Should have 2 webseed on the first video', async function () { 187 it('Should have 2 webseed on the first video', function () {
188 this.timeout(40000)
189
190 return check2Webseeds()
191 })
192
193 after(function () {
194 return cleanServers()
195 })
196 })
197
198 describe('With recently added strategy', function () {
199
200 before(function () {
201 this.timeout(120000)
202
203 return runServers('recently-added', { minViews: 3 })
204 })
205
206 it('Should have 1 webseed on the first video', function () {
207 return check1WebSeed()
208 })
209
210 it('Should enable redundancy on server 1', function () {
211 return enableRedundancy()
212 })
213
214 it('Should still have 1 webseed on the first video', async function () {
215 this.timeout(40000)
216
217 await waitJobs(servers)
218 await wait(15000)
219 await waitJobs(servers)
220
221 return check1WebSeed()
222 })
223
224 it('Should view 2 times the first video', async function () {
225 this.timeout(40000)
226
227 await viewVideo(servers[ 0 ].url, video1Server2UUID)
228 await viewVideo(servers[ 2 ].url, video1Server2UUID)
229
230 await wait(10000)
231 await waitJobs(servers)
232 })
233
234 it('Should have 2 webseed on the first video', function () {
188 this.timeout(40000) 235 this.timeout(40000)
189 236
190 return check2Webseeds() 237 return check2Webseeds()