import { VideoDetails } from '../../../../shared/models/videos'
import {
checkSegmentHash,
- checkVideoFilesWereRemoved,
+ checkVideoFilesWereRemoved, cleanupTests,
doubleFollow,
flushAndRunMultipleServers,
getFollowingListPaginationAndSort,
expect(parsed.urlList).to.have.lengthOf(baseWebseeds.length)
}
-async function runServers (strategy: VideoRedundancyStrategy, additionalParams: any = {}) {
+async function flushAndRunServers (strategy: VideoRedundancyStrategy, additionalParams: any = {}) {
const config = {
transcoding: {
hls: {
if (!videoUUID) videoUUID = video1Server2UUID
const webseeds = [
- 'http://localhost:9002/static/webseed/' + videoUUID
+ `http://localhost:${servers[ 1 ].port}/static/webseed/${videoUUID}`
]
for (const server of servers) {
if (!videoUUID) videoUUID = video1Server2UUID
const webseeds = [
- 'http://localhost:9001/static/redundancy/' + videoUUID,
- 'http://localhost:9002/static/webseed/' + videoUUID
+ `http://localhost:${servers[ 0 ].port}/static/redundancy/${videoUUID}`,
+ `http://localhost:${servers[ 1 ].port}/static/webseed/${videoUUID}`
]
for (const server of servers) {
}
}
- for (const directory of [ 'test1/redundancy', 'test2/videos' ]) {
+ const directories = [
+ 'test' + servers[0].internalServerNumber + '/redundancy',
+ 'test' + servers[1].internalServerNumber + '/videos'
+ ]
+
+ for (const directory of directories) {
const files = await readdir(join(root(), directory))
expect(files).to.have.length.at.least(4)
await checkSegmentHash(baseUrlPlaylist, baseUrlSegment, videoUUID, resolution, hlsPlaylist)
}
- for (const directory of [ 'test1/redundancy/hls', 'test2/streaming-playlists/hls' ]) {
+ const directories = [
+ 'test' + servers[0].internalServerNumber + '/redundancy/hls',
+ 'test' + servers[1].internalServerNumber + '/streaming-playlists/hls'
+ ]
+
+ for (const directory of directories) {
const files = await readdir(join(root(), directory, videoUUID))
expect(files).to.have.length.at.least(4)
const res = await getFollowingListPaginationAndSort(servers[ 0 ].url, 0, 5, '-createdAt')
const follows: ActorFollow[] = res.body.data
- const server2 = follows.find(f => f.following.host === 'localhost:9002')
- const server3 = follows.find(f => f.following.host === 'localhost:9003')
+ const server2 = follows.find(f => f.following.host === `localhost:${servers[ 1 ].port}`)
+ const server3 = follows.find(f => f.following.host === `localhost:${servers[ 2 ].port}`)
expect(server3).to.not.be.undefined
expect(server3.following.hostRedundancyAllowed).to.be.false
const res = await getFollowingListPaginationAndSort(servers[ 0 ].url, 0, 5, '-createdAt')
const follows: ActorFollow[] = res.body.data
- const server2 = follows.find(f => f.following.host === 'localhost:9002')
- const server3 = follows.find(f => f.following.host === 'localhost:9003')
+ const server2 = follows.find(f => f.following.host === `localhost:${servers[ 1 ].port}`)
+ const server3 = follows.find(f => f.following.host === `localhost:${servers[ 2 ].port}`)
expect(server3).to.not.be.undefined
expect(server3.following.hostRedundancyAllowed).to.be.false
expect(server2.following.hostRedundancyAllowed).to.be.false
}
-async function cleanServers () {
- killallServers(servers)
-}
-
describe('Test videos redundancy', function () {
describe('With most-views strategy', function () {
before(function () {
this.timeout(120000)
- return runServers(strategy)
+ return flushAndRunServers(strategy)
})
it('Should have 1 webseed on the first video', async function () {
await checkVideoFilesWereRemoved(video1Server2UUID, servers[0].serverNumber, [ 'videos', join('playlists', 'hls') ])
})
- after(function () {
- return cleanServers()
+ after(async function () {
+ return cleanupTests(servers)
})
})
before(function () {
this.timeout(120000)
- return runServers(strategy)
+ return flushAndRunServers(strategy)
})
it('Should have 1 webseed on the first video', async function () {
await checkVideoFilesWereRemoved(video1Server2UUID, servers[0].serverNumber, [ 'videos' ])
})
- after(function () {
- return cleanServers()
+ after(async function () {
+ await cleanupTests(servers)
})
})
before(function () {
this.timeout(120000)
- return runServers(strategy, { min_views: 3 })
+ return flushAndRunServers(strategy, { min_views: 3 })
})
it('Should have 1 webseed on the first video', async function () {
}
})
- after(function () {
- return cleanServers()
+ after(async function () {
+ await cleanupTests(servers)
})
})
before(async function () {
this.timeout(120000)
- await runServers(strategy, { min_lifetime: '7 seconds', min_views: 0 })
+ await flushAndRunServers(strategy, { min_lifetime: '7 seconds', min_views: 0 })
await enableRedundancyOnServer1()
})
await wait(10000)
try {
- await checkContains(servers, 'http%3A%2F%2Flocalhost%3A9001')
+ await checkContains(servers, 'http%3A%2F%2Flocalhost%3A' + servers[0].port)
} catch {
// Maybe a server deleted a redundancy in the scheduler
await wait(2000)
- await checkContains(servers, 'http%3A%2F%2Flocalhost%3A9001')
+ await checkContains(servers, 'http%3A%2F%2Flocalhost%3A' + servers[0].port)
}
})
await wait(15000)
- await checkNotContains([ servers[1], servers[2] ], 'http%3A%2F%2Flocalhost%3A9001')
+ await checkNotContains([ servers[1], servers[2] ], 'http%3A%2F%2Flocalhost%3A' + servers[0].port)
})
- after(function () {
- return killallServers([ servers[1], servers[2] ])
+ after(async function () {
+ await cleanupTests(servers)
})
})
before(async function () {
this.timeout(120000)
- await runServers(strategy, { min_lifetime: '7 seconds', min_views: 0 })
+ await flushAndRunServers(strategy, { min_lifetime: '7 seconds', min_views: 0 })
await enableRedundancyOnServer1()
await checkVideoFilesWereRemoved(video1Server2UUID, servers[0].serverNumber, [ join('redundancy', 'hls') ])
})
- after(function () {
- return cleanServers()
+ after(async function () {
+ await cleanupTests(servers)
})
})
})