-/* tslint:disable:no-unused-expression */
+/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
import * as chai from 'chai'
import { keyBy } from 'lodash'
import { VideoPrivacy } from '../../../../shared/models/videos'
import {
checkVideoFilesWereRemoved,
+ cleanupTests,
completeVideoCheck,
- flushTests,
+ flushAndRunServer,
getVideo,
getVideoCategories,
getVideoLanguages,
getVideosListPagination,
getVideosListSort,
getVideosWithFilters,
- killallServers,
rateVideo,
removeVideo,
- runServer,
ServerInfo,
setAccessTokensToServers,
testImage,
uploadVideo,
viewVideo,
wait
-} from '../../utils'
+} from '../../../../shared/extra-utils'
const expect = chai.expect
let videoUUID = ''
let videosListBase: any[] = null
- const getCheckAttributes = {
+ const getCheckAttributes = () => ({
name: 'my super name',
category: 2,
licence: 6,
support: 'my super support text',
account: {
name: 'root',
- host: 'localhost:9001'
+ host: 'localhost:' + server.port
},
isLocal: true,
duration: 5,
tags: [ 'tag1', 'tag2', 'tag3' ],
privacy: VideoPrivacy.PUBLIC,
commentsEnabled: true,
+ downloadEnabled: true,
channel: {
displayName: 'Main root channel',
name: 'root_channel',
size: 218910
}
]
- }
+ })
- const updateCheckAttributes = {
+ const updateCheckAttributes = () => ({
name: 'my super video updated',
category: 4,
licence: 2,
support: 'my super support text updated',
account: {
name: 'root',
- host: 'localhost:9001'
+ host: 'localhost:' + server.port
},
isLocal: true,
tags: [ 'tagup1', 'tagup2' ],
privacy: VideoPrivacy.PUBLIC,
duration: 5,
commentsEnabled: false,
+ downloadEnabled: false,
channel: {
name: 'root_channel',
displayName: 'Main root channel',
size: 292677
}
]
- }
+ })
before(async function () {
this.timeout(30000)
- await flushTests()
-
- server = await runServer(1)
+ server = await flushAndRunServer(1)
await setAccessTokensToServers([ server ])
})
const categories = res.body
expect(Object.keys(categories)).to.have.length.above(10)
- expect(categories[11]).to.equal('News')
+ expect(categories[11]).to.equal('News & Politics')
})
it('Should list video licences', async function () {
expect(res.body.data.length).to.equal(1)
const video = res.body.data[0]
- await completeVideoCheck(server.url, video, getCheckAttributes)
+ await completeVideoCheck(server.url, video, getCheckAttributes())
})
it('Should get the video by UUID', async function () {
const res = await getVideo(server.url, videoUUID)
const video = res.body
- await completeVideoCheck(server.url, video, getCheckAttributes)
+ await completeVideoCheck(server.url, video, getCheckAttributes())
})
it('Should have the views updated', async function () {
- this.timeout(10000)
+ this.timeout(20000)
await viewVideo(server.url, videoId)
await viewVideo(server.url, videoId)
await viewVideo(server.url, videoId)
await viewVideo(server.url, videoId)
+ // Wait the repeatable job
+ await wait(8000)
+
const res = await getVideo(server.url, videoId)
const video = res.body
expect(videos[0].name).to.equal(videosListBase[5].name)
})
+ it('Should not have the total field', async function () {
+ const res = await getVideosListPagination(server.url, 5, 6, 'name', true)
+
+ const videos = res.body.data
+ expect(res.body.total).to.not.exist
+ expect(videos.length).to.equal(1)
+ expect(videos[0].name).to.equal(videosListBase[5].name)
+ })
+
it('Should list and sort by name in descending order', async function () {
const res = await getVideosListSort(server.url, '-name')
videoId = videos[3].uuid
})
+ it('Should list and sort by trending in descending order', async function () {
+ const res = await getVideosListPagination(server.url, 0, 2, '-trending')
+
+ const videos = res.body.data
+ expect(res.body.total).to.equal(6)
+ expect(videos.length).to.equal(2)
+ })
+
it('Should update a video', async function () {
const attributes = {
name: 'my super video updated',
nsfw: false,
description: 'my super description updated',
commentsEnabled: false,
+ downloadEnabled: false,
tags: [ 'tagup1', 'tagup2' ]
}
await updateVideo(server.url, server.accessToken, videoId, attributes)
const res = await getVideo(server.url, videoId)
const video = res.body
- await completeVideoCheck(server.url, video, updateCheckAttributes)
+ await completeVideoCheck(server.url, video, updateCheckAttributes())
})
it('Should update only the tags of a video', async function () {
const res = await getVideo(server.url, videoId)
const video = res.body
- await completeVideoCheck(server.url, video, Object.assign(updateCheckAttributes, attributes))
+ await completeVideoCheck(server.url, video, Object.assign(updateCheckAttributes(), attributes))
})
it('Should update only the description of a video', async function () {
const res = await getVideo(server.url, videoId)
const video = res.body
- await completeVideoCheck(server.url, video, Object.assign(updateCheckAttributes, attributes))
+ const expectedAttributes = Object.assign(updateCheckAttributes(), { tags: [ 'supertag', 'tag1', 'tag2' ] }, attributes)
+ await completeVideoCheck(server.url, video, expectedAttributes)
})
it('Should like a video', async function () {
})
after(async function () {
- killallServers([ server ])
-
- // Keep the logs if the test failed
- if (this['ok']) {
- await flushTests()
- }
+ await cleanupTests([ server ])
})
})