import 'mocha'
import * as chai from 'chai'
-import { VideoPrivacy } from '@shared/models'
import {
- advancedVideosSearch,
cleanupTests,
- createLive,
+ createVideoCaption,
flushAndRunServer,
immutableAssign,
- searchVideo,
- sendRTMPStreamInVideo,
+ SearchCommand,
ServerInfo,
setAccessTokensToServers,
setDefaultVideoChannel,
stopFfmpeg,
- updateCustomSubConfig,
uploadVideo,
- wait,
- waitUntilLivePublished
-} from '../../../../shared/extra-utils'
-import { createVideoCaption } from '../../../../shared/extra-utils/videos/video-captions'
+ wait
+} from '@shared/extra-utils'
+import { VideoPrivacy } from '@shared/models'
const expect = chai.expect
let startDate: string
let videoUUID: string
+ let command: SearchCommand
+
before(async function () {
this.timeout(60000)
await uploadVideo(server.url, server.accessToken, attributes1)
await uploadVideo(server.url, server.accessToken, immutableAssign(attributes1, { category: 2 }))
}
+
+ command = server.searchCommand
})
it('Should make a simple search and not have results', async function () {
- const res = await searchVideo(server.url, 'abc')
+ const body = await command.searchVideos({ search: 'abc' })
- expect(res.body.total).to.equal(0)
- expect(res.body.data).to.have.lengthOf(0)
+ expect(body.total).to.equal(0)
+ expect(body.data).to.have.lengthOf(0)
})
it('Should make a simple search and have results', async function () {
- const res = await searchVideo(server.url, '4444 5555 duplicate')
+ const body = await command.searchVideos({ search: '4444 5555 duplicate' })
- expect(res.body.total).to.equal(2)
+ expect(body.total).to.equal(2)
- const videos = res.body.data
+ const videos = body.data
expect(videos).to.have.lengthOf(2)
// bestmatch
})
it('Should make a search on tags too, and have results', async function () {
- const query = {
+ const search = {
search: 'aaaa',
categoryOneOf: [ 1 ]
}
- const res = await advancedVideosSearch(server.url, query)
+ const body = await command.advancedVideoSearch({ search })
- expect(res.body.total).to.equal(2)
+ expect(body.total).to.equal(2)
- const videos = res.body.data
+ const videos = body.data
expect(videos).to.have.lengthOf(2)
// bestmatch
})
it('Should filter on tags without a search', async function () {
- const query = {
+ const search = {
tagsAllOf: [ 'bbbb' ]
}
- const res = await advancedVideosSearch(server.url, query)
+ const body = await command.advancedVideoSearch({ search })
- expect(res.body.total).to.equal(2)
+ expect(body.total).to.equal(2)
- const videos = res.body.data
+ const videos = body.data
expect(videos).to.have.lengthOf(2)
expect(videos[0].name).to.equal('9999')
})
it('Should filter on category without a search', async function () {
- const query = {
+ const search = {
categoryOneOf: [ 3 ]
}
- const res = await advancedVideosSearch(server.url, query)
+ const body = await command.advancedVideoSearch({ search: search })
- expect(res.body.total).to.equal(1)
+ expect(body.total).to.equal(1)
- const videos = res.body.data
+ const videos = body.data
expect(videos).to.have.lengthOf(1)
expect(videos[0].name).to.equal('6666 7777 8888')
categoryOneOf: [ 1 ],
tagsOneOf: [ 'aAaa', 'ffff' ]
}
- const res1 = await advancedVideosSearch(server.url, query)
- expect(res1.body.total).to.equal(2)
- const res2 = await advancedVideosSearch(server.url, immutableAssign(query, { tagsOneOf: [ 'blabla' ] }))
- expect(res2.body.total).to.equal(0)
+ {
+ const body = await command.advancedVideoSearch({ search: query })
+ expect(body.total).to.equal(2)
+ }
+
+ {
+ const body = await command.advancedVideoSearch({ search: { ...query, tagsOneOf: [ 'blabla' ] } })
+ expect(body.total).to.equal(0)
+ }
})
it('Should search by tags (all of)', async function () {
categoryOneOf: [ 1 ],
tagsAllOf: [ 'CCcc' ]
}
- const res1 = await advancedVideosSearch(server.url, query)
- expect(res1.body.total).to.equal(2)
- const res2 = await advancedVideosSearch(server.url, immutableAssign(query, { tagsAllOf: [ 'blAbla' ] }))
- expect(res2.body.total).to.equal(0)
+ {
+ const body = await command.advancedVideoSearch({ search: query })
+ expect(body.total).to.equal(2)
+ }
+
+ {
+ const body = await command.advancedVideoSearch({ search: { ...query, tagsAllOf: [ 'blAbla' ] } })
+ expect(body.total).to.equal(0)
+ }
- const res3 = await advancedVideosSearch(server.url, immutableAssign(query, { tagsAllOf: [ 'bbbb', 'CCCC' ] }))
- expect(res3.body.total).to.equal(1)
+ {
+ const body = await command.advancedVideoSearch({ search: { ...query, tagsAllOf: [ 'bbbb', 'CCCC' ] } })
+ expect(body.total).to.equal(1)
+ }
})
it('Should search by category', async function () {
search: '6666',
categoryOneOf: [ 3 ]
}
- const res1 = await advancedVideosSearch(server.url, query)
- expect(res1.body.total).to.equal(1)
- expect(res1.body.data[0].name).to.equal('6666 7777 8888')
- const res2 = await advancedVideosSearch(server.url, immutableAssign(query, { categoryOneOf: [ 2 ] }))
- expect(res2.body.total).to.equal(0)
+ {
+ const body = await command.advancedVideoSearch({ search: query })
+ expect(body.total).to.equal(1)
+ expect(body.data[0].name).to.equal('6666 7777 8888')
+ }
+
+ {
+ const body = await command.advancedVideoSearch({ search: { ...query, categoryOneOf: [ 2 ] } })
+ expect(body.total).to.equal(0)
+ }
})
it('Should search by licence', async function () {
search: '4444 5555',
licenceOneOf: [ 2 ]
}
- const res1 = await advancedVideosSearch(server.url, query)
- expect(res1.body.total).to.equal(2)
- expect(res1.body.data[0].name).to.equal('3333 4444 5555')
- expect(res1.body.data[1].name).to.equal('3333 4444 5555 duplicate')
- const res2 = await advancedVideosSearch(server.url, immutableAssign(query, { licenceOneOf: [ 3 ] }))
- expect(res2.body.total).to.equal(0)
+ {
+ const body = await command.advancedVideoSearch({ search: query })
+ expect(body.total).to.equal(2)
+ expect(body.data[0].name).to.equal('3333 4444 5555')
+ expect(body.data[1].name).to.equal('3333 4444 5555 duplicate')
+ }
+
+ {
+ const body = await command.advancedVideoSearch({ search: { ...query, licenceOneOf: [ 3 ] } })
+ expect(body.total).to.equal(0)
+ }
})
it('Should search by languages', async function () {
}
{
- const res = await advancedVideosSearch(server.url, query)
- expect(res.body.total).to.equal(2)
- expect(res.body.data[0].name).to.equal('1111 2222 3333 - 3')
- expect(res.body.data[1].name).to.equal('1111 2222 3333 - 4')
+ const body = await command.advancedVideoSearch({ search: query })
+ expect(body.total).to.equal(2)
+ expect(body.data[0].name).to.equal('1111 2222 3333 - 3')
+ expect(body.data[1].name).to.equal('1111 2222 3333 - 4')
}
{
- const res = await advancedVideosSearch(server.url, immutableAssign(query, { languageOneOf: [ 'pl', 'en', '_unknown' ] }))
- expect(res.body.total).to.equal(3)
- expect(res.body.data[0].name).to.equal('1111 2222 3333 - 3')
- expect(res.body.data[1].name).to.equal('1111 2222 3333 - 4')
- expect(res.body.data[2].name).to.equal('1111 2222 3333 - 5')
+ const body = await command.advancedVideoSearch({ search: { ...query, languageOneOf: [ 'pl', 'en', '_unknown' ] } })
+ expect(body.total).to.equal(3)
+ expect(body.data[0].name).to.equal('1111 2222 3333 - 3')
+ expect(body.data[1].name).to.equal('1111 2222 3333 - 4')
+ expect(body.data[2].name).to.equal('1111 2222 3333 - 5')
}
{
- const res = await advancedVideosSearch(server.url, immutableAssign(query, { languageOneOf: [ 'eo' ] }))
- expect(res.body.total).to.equal(0)
+ const body = await command.advancedVideoSearch({ search: { ...query, languageOneOf: [ 'eo' ] } })
+ expect(body.total).to.equal(0)
}
})
startDate
}
- const res = await advancedVideosSearch(server.url, query)
- expect(res.body.total).to.equal(4)
+ const body = await command.advancedVideoSearch({ search: query })
+ expect(body.total).to.equal(4)
- const videos = res.body.data
+ const videos = body.data
expect(videos[0].name).to.equal('1111 2222 3333 - 5')
expect(videos[1].name).to.equal('1111 2222 3333 - 6')
expect(videos[2].name).to.equal('1111 2222 3333 - 7')
licenceOneOf: [ 1, 4 ]
}
- const res = await advancedVideosSearch(server.url, query)
- expect(res.body.total).to.equal(4)
+ const body = await command.advancedVideoSearch({ search: query })
+ expect(body.total).to.equal(4)
- const videos = res.body.data
+ const videos = body.data
expect(videos[0].name).to.equal('1111 2222 3333')
expect(videos[1].name).to.equal('1111 2222 3333 - 6')
expect(videos[2].name).to.equal('1111 2222 3333 - 7')
sort: '-name'
}
- const res = await advancedVideosSearch(server.url, query)
- expect(res.body.total).to.equal(4)
+ const body = await command.advancedVideoSearch({ search: query })
+ expect(body.total).to.equal(4)
- const videos = res.body.data
+ const videos = body.data
expect(videos[0].name).to.equal('1111 2222 3333 - 8')
expect(videos[1].name).to.equal('1111 2222 3333 - 7')
expect(videos[2].name).to.equal('1111 2222 3333 - 6')
count: 1
}
- const res = await advancedVideosSearch(server.url, query)
- expect(res.body.total).to.equal(4)
+ const body = await command.advancedVideoSearch({ search: query })
+ expect(body.total).to.equal(4)
- const videos = res.body.data
+ const videos = body.data
expect(videos[0].name).to.equal('1111 2222 3333 - 8')
})
count: 1
}
- const res = await advancedVideosSearch(server.url, query)
- expect(res.body.total).to.equal(4)
+ const body = await command.advancedVideoSearch({ search: query })
+ expect(body.total).to.equal(4)
- const videos = res.body.data
+ const videos = body.data
expect(videos[0].name).to.equal('1111 2222 3333')
})
{
const query = immutableAssign(baseQuery, { originallyPublishedStartDate: '2019-02-11T09:58:08.286Z' })
- const res = await advancedVideosSearch(server.url, query)
+ const body = await command.advancedVideoSearch({ search: query })
- expect(res.body.total).to.equal(1)
- expect(res.body.data[0].name).to.equal('1111 2222 3333 - 7')
+ expect(body.total).to.equal(1)
+ expect(body.data[0].name).to.equal('1111 2222 3333 - 7')
}
{
const query = immutableAssign(baseQuery, { originallyPublishedEndDate: '2019-03-11T09:58:08.286Z' })
- const res = await advancedVideosSearch(server.url, query)
+ const body = await command.advancedVideoSearch({ search: query })
- expect(res.body.total).to.equal(1)
- expect(res.body.data[0].name).to.equal('1111 2222 3333 - 7')
+ expect(body.total).to.equal(1)
+ expect(body.data[0].name).to.equal('1111 2222 3333 - 7')
}
{
const query = immutableAssign(baseQuery, { originallyPublishedEndDate: '2019-01-11T09:58:08.286Z' })
- const res = await advancedVideosSearch(server.url, query)
+ const body = await command.advancedVideoSearch({ search: query })
- expect(res.body.total).to.equal(0)
+ expect(body.total).to.equal(0)
}
{
const query = immutableAssign(baseQuery, { originallyPublishedStartDate: '2019-03-11T09:58:08.286Z' })
- const res = await advancedVideosSearch(server.url, query)
+ const body = await command.advancedVideoSearch({ search: query })
- expect(res.body.total).to.equal(0)
+ expect(body.total).to.equal(0)
}
{
originallyPublishedStartDate: '2019-01-11T09:58:08.286Z',
originallyPublishedEndDate: '2019-01-10T09:58:08.286Z'
})
- const res = await advancedVideosSearch(server.url, query)
+ const body = await command.advancedVideoSearch({ search: query })
- expect(res.body.total).to.equal(0)
+ expect(body.total).to.equal(0)
}
{
originallyPublishedStartDate: '2019-01-11T09:58:08.286Z',
originallyPublishedEndDate: '2019-04-11T09:58:08.286Z'
})
- const res = await advancedVideosSearch(server.url, query)
+ const body = await command.advancedVideoSearch({ search: query })
- expect(res.body.total).to.equal(1)
- expect(res.body.data[0].name).to.equal('1111 2222 3333 - 7')
+ expect(body.total).to.equal(1)
+ expect(body.data[0].name).to.equal('1111 2222 3333 - 7')
}
})
it('Should search by UUID', async function () {
const search = videoUUID
- const res = await advancedVideosSearch(server.url, { search })
+ const body = await command.advancedVideoSearch({ search: { search } })
- expect(res.body.total).to.equal(1)
- expect(res.body.data[0].name).to.equal('1111 2222 3333 - 3')
+ expect(body.total).to.equal(1)
+ expect(body.data[0].name).to.equal('1111 2222 3333 - 3')
})
it('Should search by live', async function () {
this.timeout(30000)
{
- const options = {
+ const newConfig = {
search: {
searchIndex: { enabled: false }
},
live: { enabled: true }
}
- await updateCustomSubConfig(server.url, server.accessToken, options)
+ await server.configCommand.updateCustomSubConfig({ newConfig })
}
{
- const res = await advancedVideosSearch(server.url, { isLive: true })
+ const body = await command.advancedVideoSearch({ search: { isLive: true } })
- expect(res.body.total).to.equal(0)
- expect(res.body.data).to.have.lengthOf(0)
+ expect(body.total).to.equal(0)
+ expect(body.data).to.have.lengthOf(0)
}
{
- const liveOptions = { name: 'live', privacy: VideoPrivacy.PUBLIC, channelId: server.videoChannel.id }
- const resLive = await createLive(server.url, server.accessToken, liveOptions)
- const liveVideoId = resLive.body.video.uuid
+ const liveCommand = server.liveCommand
+
+ const liveAttributes = { name: 'live', privacy: VideoPrivacy.PUBLIC, channelId: server.videoChannel.id }
+ const live = await liveCommand.createLive({ fields: liveAttributes })
- const command = await sendRTMPStreamInVideo(server.url, server.accessToken, liveVideoId)
- await waitUntilLivePublished(server.url, server.accessToken, liveVideoId)
+ const ffmpegCommand = await liveCommand.sendRTMPStreamInVideo({ videoId: live.id })
+ await liveCommand.waitUntilLivePublished({ videoId: live.id })
- const res = await advancedVideosSearch(server.url, { isLive: true })
+ const body = await command.advancedVideoSearch({ search: { isLive: true } })
- expect(res.body.total).to.equal(1)
- expect(res.body.data[0].name).to.equal('live')
+ expect(body.total).to.equal(1)
+ expect(body.data[0].name).to.equal('live')
- await stopFfmpeg(command)
+ await stopFfmpeg(ffmpegCommand)
}
})