import * as request from 'supertest'
import { VideoPrivacy } from '../../../../shared/models/videos'
import { VideoComment, VideoCommentThreadTree } from '../../../../shared/models/videos/video-comment.model'
-
import {
addVideoChannel,
checkVideoFilesWereRemoved,
dateIsValid,
doubleFollow,
flushAndRunMultipleServers,
- flushTests, getLocalVideos,
+ flushTests,
+ getLocalVideos,
getVideo,
getVideoChannelsList,
getVideosList,
getVideoCommentThreads,
getVideoThreadComments
} from '../../utils/videos/video-comments'
+import { waitJobs } from '../../utils/server/jobs'
const expect = chai.expect
// Get the access tokens
await setAccessTokensToServers(servers)
- const videoChannel = {
- name: 'my channel',
- description: 'super channel'
+ {
+ const videoChannel = {
+ name: 'super_channel_name',
+ displayName: 'my channel',
+ description: 'super channel'
+ }
+ await addVideoChannel(servers[ 0 ].url, servers[ 0 ].accessToken, videoChannel)
+ const channelRes = await getVideoChannelsList(servers[ 0 ].url, 0, 1)
+ videoChannelId = channelRes.body.data[ 0 ].id
}
- await addVideoChannel(servers[0].url, servers[0].accessToken, videoChannel)
- const channelRes = await getVideoChannelsList(servers[0].url, 0, 1)
- videoChannelId = channelRes.body.data[0].id
// Server 1 and server 2 follow each other
await doubleFollow(servers[0], servers[1])
name: 'my super name for server 1',
category: 5,
licence: 4,
- language: 9,
+ language: 'ja',
nsfw: true,
description: 'my super description for server 1',
support: 'my super support text for server 1',
}
await uploadVideo(servers[0].url, servers[0].accessToken, videoAttributes)
- await wait(10000)
+ await waitJobs(servers)
// All servers should have this video
+ let publishedAt: string = null
for (const server of servers) {
const isLocal = server.url === 'http://localhost:9001'
const checkAttributes = {
name: 'my super name for server 1',
category: 5,
licence: 4,
- language: 9,
+ language: 'ja',
nsfw: true,
description: 'my super description for server 1',
support: 'my super support text for server 1',
host: 'localhost:9001'
},
isLocal,
+ publishedAt,
duration: 10,
tags: [ 'tag1p1', 'tag2p1' ],
privacy: VideoPrivacy.PUBLIC,
commentsEnabled: true,
channel: {
- name: 'my channel',
+ displayName: 'my channel',
+ name: 'super_channel_name',
description: 'super channel',
isLocal
},
const video = videos[0]
await completeVideoCheck(server.url, video, checkAttributes)
+ publishedAt = video.publishedAt
}
})
name: 'my super name for server 2',
category: 4,
licence: 3,
- language: 11,
+ language: 'de',
nsfw: true,
description: 'my super description for server 2',
support: 'my super support text for server 2',
await uploadVideo(servers[1].url, userAccessToken, videoAttributes)
// Transcoding
- await wait(30000)
+ await waitJobs(servers)
// All servers should have this video
for (const server of servers) {
name: 'my super name for server 2',
category: 4,
licence: 3,
- language: 11,
+ language: 'de',
nsfw: true,
description: 'my super description for server 2',
support: 'my super support text for server 2',
tags: [ 'tag1p2', 'tag2p2', 'tag3p2' ],
privacy: VideoPrivacy.PUBLIC,
channel: {
- name: 'Default user1 channel',
+ displayName: 'Main user1 channel',
+ name: 'user1_channel',
description: 'super channel',
isLocal
},
files: [
{
resolution: 240,
- size: 190000
+ size: 187000
},
{
resolution: 360,
- size: 280000
+ size: 278000
},
{
resolution: 480,
- size: 390000
+ size: 383000
},
{
resolution: 720,
- size: 710000
+ size: 706000
}
],
thumbnailfile: 'thumbnail',
name: 'my super name for server 3',
category: 6,
licence: 5,
- language: 11,
+ language: 'de',
nsfw: true,
description: 'my super description for server 3',
support: 'my super support text for server 3',
name: 'my super name for server 3-2',
category: 7,
licence: 6,
- language: 12,
+ language: 'ko',
nsfw: false,
description: 'my super description for server 3-2',
support: 'my super support text for server 3-2',
}
await uploadVideo(servers[2].url, servers[2].accessToken, videoAttributes2)
- await wait(10000)
+ await waitJobs(servers)
// All servers should have this video
for (const server of servers) {
name: 'my super name for server 3',
category: 6,
licence: 5,
- language: 11,
+ language: 'de',
nsfw: true,
description: 'my super description for server 3',
support: 'my super support text for server 3',
tags: [ 'tag1p3' ],
privacy: VideoPrivacy.PUBLIC,
channel: {
- name: 'Default root channel',
+ displayName: 'Main root channel',
+ name: 'root_channel',
description: '',
isLocal
},
name: 'my super name for server 3-2',
category: 7,
licence: 6,
- language: 12,
+ language: 'ko',
nsfw: false,
description: 'my super description for server 3-2',
support: 'my super support text for server 3-2',
tags: [ 'tag2p3', 'tag3p3', 'tag4p3' ],
privacy: VideoPrivacy.PUBLIC,
channel: {
- name: 'Default root channel',
+ displayName: 'Main root channel',
+ name: 'root_channel',
description: '',
isLocal
},
})
it('Should view multiple videos on owned servers', async function () {
- this.timeout(15000)
+ this.timeout(30000)
const tasks: Promise<any>[] = []
await viewVideo(servers[2].url, localVideosServer3[0])
await viewVideo(servers[2].url, localVideosServer3[1])
await Promise.all(tasks)
- await wait(1500)
+ await waitJobs(servers)
await viewVideo(servers[2].url, localVideosServer3[0])
- await wait(1500)
+ await waitJobs(servers)
await viewVideo(servers[2].url, localVideosServer3[0])
- await wait(5000)
+ await waitJobs(servers)
+
+ // Wait the repeatable job
+ await wait(6000)
for (const server of servers) {
const res = await getVideosList(server.url)
})
it('Should view multiple videos on each servers', async function () {
- this.timeout(15000)
+ this.timeout(30000)
const tasks: Promise<any>[] = []
tasks.push(viewVideo(servers[0].url, remoteVideosServer1[0]))
await Promise.all(tasks)
- await wait(10000)
+ await waitJobs(servers)
+
+ // Wait the repeatable job
+ await wait(8000)
let baseVideos = null
await wait(200)
await rateVideo(servers[2].url, servers[2].accessToken, remoteVideosServer3[0], 'like')
- await wait(10000)
+ await waitJobs(servers)
let baseVideos = null
for (const server of servers) {
name: 'my super video updated',
category: 10,
licence: 7,
- language: 13,
+ language: 'fr',
nsfw: true,
description: 'my super description updated',
support: 'my super support text updated',
await updateVideo(servers[2].url, servers[2].accessToken, toRemove[0].id, attributes)
- await wait(5000)
+ await waitJobs(servers)
})
it('Should have the video 3 updated on each server', async function () {
name: 'my super video updated',
category: 10,
licence: 7,
- language: 13,
+ language: 'fr',
nsfw: true,
description: 'my super description updated',
support: 'my super support text updated',
tags: [ 'tag_up_1', 'tag_up_2' ],
privacy: VideoPrivacy.PUBLIC,
channel: {
- name: 'Default root channel',
+ displayName: 'Main root channel',
+ name: 'root_channel',
description: '',
isLocal
},
await removeVideo(servers[2].url, servers[2].accessToken, toRemove[0].id)
await removeVideo(servers[2].url, servers[2].accessToken, toRemove[1].id)
- await wait(5000)
+ await waitJobs(servers)
})
it('Should not have files of videos 3 and 3-2 on each server', async function () {
await addVideoCommentThread(servers[ 2 ].url, servers[ 2 ].accessToken, videoUUID, text)
}
- await wait(5000)
+ await waitJobs(servers)
{
const res = await getVideoCommentThreads(servers[1].url, videoUUID, 0, 5)
await addVideoCommentReply(servers[ 1 ].url, servers[ 1 ].accessToken, videoUUID, threadId, text)
}
- await wait(5000)
+ await waitJobs(servers)
{
const res1 = await getVideoCommentThreads(servers[2].url, videoUUID, 0, 5)
await addVideoCommentReply(servers[ 2 ].url, servers[ 2 ].accessToken, videoUUID, childCommentId, text2)
}
- await wait(5000)
+ await waitJobs(servers)
})
it('Should have these threads', async function () {
await deleteVideoComment(servers[2].url, servers[2].accessToken, videoUUID, childOfFirstChild.comment.id)
- await wait(5000)
+ await waitJobs(servers)
})
it('Should not have this comment anymore', async function () {
const threadId = res1.body.data.find(c => c.text === 'my super first comment').id
await deleteVideoComment(servers[0].url, servers[0].accessToken, videoUUID, threadId)
- await wait(5000)
+ await waitJobs(servers)
})
it('Should have the thread comments deleted on other servers too', async function () {
await updateVideo(servers[0].url, servers[0].accessToken, videoUUID, attributes)
- await wait(5000)
+ await waitJobs(servers)
for (const server of servers) {
const res = await getVideo(server.url, videoUUID)
describe('With minimum parameters', function () {
it('Should upload and propagate the video', async function () {
- this.timeout(50000)
+ this.timeout(60000)
const path = '/api/v1/videos/upload'
.set('Authorization', 'Bearer ' + servers[1].accessToken)
.field('name', 'minimum parameters')
.field('privacy', '1')
- .field('nsfw', 'false')
.field('channelId', '1')
- .field('commentsEnabled', 'true')
- const filePath = join(__dirname, '..', '..', 'api', 'fixtures', 'video_short.webm')
+ const filePath = join(__dirname, '..', '..', 'fixtures', 'video_short.webm')
await req.attach('videofile', filePath)
.expect(200)
- await wait(25000)
+ await waitJobs(servers)
for (const server of servers) {
const res = await getVideosList(server.url)
},
isLocal,
duration: 5,
- commentsEnabled: true,
+ commentsEnabled: false,
tags: [ ],
privacy: VideoPrivacy.PUBLIC,
channel: {
- name: 'Default root channel',
+ displayName: 'Main root channel',
+ name: 'root_channel',
description: '',
isLocal
},
files: [
{
resolution: 720,
- size: 40315
+ size: 36000
},
{
resolution: 480,
- size: 22808
+ size: 21000
},
{
resolution: 360,
- size: 18617
+ size: 17000
},
{
resolution: 240,
- size: 15217
+ size: 13000
}
]
}