import 'mocha'
import * as chai from 'chai'
-import { VideoPrivacy } from '@shared/models'
import {
cleanupTests,
- createLive,
- flushAndRunServer,
- immutableAssign,
+ createSingleServer,
+ PeerTubeServer,
SearchCommand,
- sendRTMPStreamInVideo,
- ServerInfo,
setAccessTokensToServers,
setDefaultVideoChannel,
stopFfmpeg,
- 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
describe('Test videos search', function () {
- let server: ServerInfo = null
+ let server: PeerTubeServer = null
let startDate: string
let videoUUID: string
before(async function () {
this.timeout(60000)
- server = await flushAndRunServer(1)
+ server = await createSingleServer(1)
await setAccessTokensToServers([ server ])
await setDefaultVideoChannel([ server ])
nsfw: false,
language: 'fr'
}
- await uploadVideo(server.url, server.accessToken, attributes1)
+ await server.videos.upload({ attributes: attributes1 })
- const attributes2 = immutableAssign(attributes1, { name: attributes1.name + ' - 2', fixture: 'video_short.mp4' })
- await uploadVideo(server.url, server.accessToken, attributes2)
+ const attributes2 = { ...attributes1, name: attributes1.name + ' - 2', fixture: 'video_short.mp4' }
+ await server.videos.upload({ attributes: attributes2 })
{
- const attributes3 = immutableAssign(attributes1, { name: attributes1.name + ' - 3', language: undefined })
- const res = await uploadVideo(server.url, server.accessToken, attributes3)
- const videoId = res.body.video.id
- videoUUID = res.body.video.uuid
-
- await createVideoCaption({
- url: server.url,
- accessToken: server.accessToken,
+ const attributes3 = { ...attributes1, name: attributes1.name + ' - 3', language: undefined }
+ const { id, uuid } = await server.videos.upload({ attributes: attributes3 })
+ videoUUID = uuid
+
+ await server.captions.add({
language: 'en',
- videoId,
+ videoId: id,
fixture: 'subtitle-good2.vtt',
mimeType: 'application/octet-stream'
})
- await createVideoCaption({
- url: server.url,
- accessToken: server.accessToken,
+ await server.captions.add({
language: 'aa',
- videoId,
+ videoId: id,
fixture: 'subtitle-good2.vtt',
mimeType: 'application/octet-stream'
})
}
- const attributes4 = immutableAssign(attributes1, { name: attributes1.name + ' - 4', language: 'pl', nsfw: true })
- await uploadVideo(server.url, server.accessToken, attributes4)
+ const attributes4 = { ...attributes1, name: attributes1.name + ' - 4', language: 'pl', nsfw: true }
+ await server.videos.upload({ attributes: attributes4 })
await wait(1000)
startDate = new Date().toISOString()
- const attributes5 = immutableAssign(attributes1, { name: attributes1.name + ' - 5', licence: 2, language: undefined })
- await uploadVideo(server.url, server.accessToken, attributes5)
+ const attributes5 = { ...attributes1, name: attributes1.name + ' - 5', licence: 2, language: undefined }
+ await server.videos.upload({ attributes: attributes5 })
- const attributes6 = immutableAssign(attributes1, { name: attributes1.name + ' - 6', tags: [ 't1', 't2' ] })
- await uploadVideo(server.url, server.accessToken, attributes6)
+ const attributes6 = { ...attributes1, name: attributes1.name + ' - 6', tags: [ 't1', 't2' ] }
+ await server.videos.upload({ attributes: attributes6 })
- const attributes7 = immutableAssign(attributes1, {
- name: attributes1.name + ' - 7',
- originallyPublishedAt: '2019-02-12T09:58:08.286Z'
- })
- await uploadVideo(server.url, server.accessToken, attributes7)
+ const attributes7 = { ...attributes1, name: attributes1.name + ' - 7', originallyPublishedAt: '2019-02-12T09:58:08.286Z' }
+ await server.videos.upload({ attributes: attributes7 })
- const attributes8 = immutableAssign(attributes1, { name: attributes1.name + ' - 8', licence: 4 })
- await uploadVideo(server.url, server.accessToken, attributes8)
+ const attributes8 = { ...attributes1, name: attributes1.name + ' - 8', licence: 4 }
+ await server.videos.upload({ attributes: attributes8 })
}
{
licence: 2,
language: 'en'
}
- await uploadVideo(server.url, server.accessToken, attributes)
+ await server.videos.upload({ attributes: attributes })
- await uploadVideo(server.url, server.accessToken, immutableAssign(attributes, { name: attributes.name + ' duplicate' }))
+ await server.videos.upload({ attributes: { ...attributes, name: attributes.name + ' duplicate' } })
}
{
licence: 3,
language: 'pl'
}
- await uploadVideo(server.url, server.accessToken, attributes)
+ await server.videos.upload({ attributes: attributes })
}
{
tags: [ 'aaaa', 'bbbb', 'cccc' ],
category: 1
}
- await uploadVideo(server.url, server.accessToken, attributes1)
- await uploadVideo(server.url, server.accessToken, immutableAssign(attributes1, { category: 2 }))
+ await server.videos.upload({ attributes: attributes1 })
+ await server.videos.upload({ attributes: { ...attributes1, category: 2 } })
- await uploadVideo(server.url, server.accessToken, immutableAssign(attributes1, { tags: [ 'cccc', 'dddd' ] }))
- await uploadVideo(server.url, server.accessToken, immutableAssign(attributes1, { tags: [ 'eeee', 'ffff' ] }))
+ await server.videos.upload({ attributes: { ...attributes1, tags: [ 'cccc', 'dddd' ] } })
+ await server.videos.upload({ attributes: { ...attributes1, tags: [ 'eeee', 'ffff' ] } })
}
{
name: 'aaaa 2',
category: 1
}
- await uploadVideo(server.url, server.accessToken, attributes1)
- await uploadVideo(server.url, server.accessToken, immutableAssign(attributes1, { category: 2 }))
+ await server.videos.upload({ attributes: attributes1 })
+ await server.videos.upload({ attributes: { ...attributes1, category: 2 } })
}
- command = server.searchCommand
+ command = server.search
})
it('Should make a simple search and not have results', async function () {
}
{
- const query = immutableAssign(baseQuery, { originallyPublishedStartDate: '2019-02-11T09:58:08.286Z' })
+ const query = { ...baseQuery, originallyPublishedStartDate: '2019-02-11T09:58:08.286Z' }
const body = await command.advancedVideoSearch({ search: query })
expect(body.total).to.equal(1)
}
{
- const query = immutableAssign(baseQuery, { originallyPublishedEndDate: '2019-03-11T09:58:08.286Z' })
+ const query = { ...baseQuery, originallyPublishedEndDate: '2019-03-11T09:58:08.286Z' }
const body = await command.advancedVideoSearch({ search: query })
expect(body.total).to.equal(1)
}
{
- const query = immutableAssign(baseQuery, { originallyPublishedEndDate: '2019-01-11T09:58:08.286Z' })
+ const query = { ...baseQuery, originallyPublishedEndDate: '2019-01-11T09:58:08.286Z' }
const body = await command.advancedVideoSearch({ search: query })
expect(body.total).to.equal(0)
}
{
- const query = immutableAssign(baseQuery, { originallyPublishedStartDate: '2019-03-11T09:58:08.286Z' })
+ const query = { ...baseQuery, originallyPublishedStartDate: '2019-03-11T09:58:08.286Z' }
const body = await command.advancedVideoSearch({ search: query })
expect(body.total).to.equal(0)
}
{
- const query = immutableAssign(baseQuery, {
+ const query = {
+ ...baseQuery,
originallyPublishedStartDate: '2019-01-11T09:58:08.286Z',
originallyPublishedEndDate: '2019-01-10T09:58:08.286Z'
- })
+ }
const body = await command.advancedVideoSearch({ search: query })
expect(body.total).to.equal(0)
}
{
- const query = immutableAssign(baseQuery, {
+ const query = {
+ ...baseQuery,
originallyPublishedStartDate: '2019-01-11T09:58:08.286Z',
originallyPublishedEndDate: '2019-04-11T09:58:08.286Z'
- })
+ }
const body = await command.advancedVideoSearch({ search: query })
expect(body.total).to.equal(1)
},
live: { enabled: true }
}
- await server.configCommand.updateCustomSubConfig({ newConfig })
+ await server.config.updateCustomSubConfig({ newConfig })
}
{
}
{
- 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.live
+
+ const liveAttributes = { name: 'live', privacy: VideoPrivacy.PUBLIC, channelId: server.store.channel.id }
+ const live = await liveCommand.create({ fields: liveAttributes })
- const ffmpegCommand = await sendRTMPStreamInVideo(server.url, server.accessToken, liveVideoId)
- await waitUntilLivePublished(server.url, server.accessToken, liveVideoId)
+ const ffmpegCommand = await liveCommand.sendRTMPStreamInVideo({ videoId: live.id })
+ await liveCommand.waitUntilPublished({ videoId: live.id })
const body = await command.advancedVideoSearch({ search: { isLive: true } })