/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
-import 'mocha'
-import * as chai from 'chai'
+import { expect } from 'chai'
+import { wait } from '@shared/core-utils'
+import { VideoPrivacy } from '@shared/models'
import {
cleanupTests,
createSingleServer,
PeerTubeServer,
SearchCommand,
setAccessTokensToServers,
+ setDefaultAccountAvatar,
+ setDefaultChannelAvatar,
setDefaultVideoChannel,
- stopFfmpeg,
- wait
-} from '@shared/extra-utils'
-import { VideoPrivacy } from '@shared/models'
-
-const expect = chai.expect
+ stopFfmpeg
+} from '@shared/server-commands'
describe('Test videos search', function () {
let server: PeerTubeServer
let remoteServer: PeerTubeServer
let startDate: string
let videoUUID: string
+ let videoShortUUID: string
let command: SearchCommand
before(async function () {
- this.timeout(120000)
+ this.timeout(240000)
- server = await createSingleServer(1)
- remoteServer = await createSingleServer(2)
+ const servers = await Promise.all([
+ createSingleServer(1),
+ createSingleServer(2)
+ ])
+ server = servers[0]
+ remoteServer = servers[1]
await setAccessTokensToServers([ server, remoteServer ])
await setDefaultVideoChannel([ server, remoteServer ])
+ await setDefaultChannelAvatar(server)
+ await setDefaultAccountAvatar(servers)
{
const attributes1 = {
{
const attributes3 = { ...attributes1, name: attributes1.name + ' - 3', language: undefined }
- const { id, uuid } = await server.videos.upload({ attributes: attributes3 })
+ const { id, uuid, shortUUID } = await server.videos.upload({ attributes: attributes3 })
videoUUID = uuid
+ videoShortUUID = shortUUID
await server.captions.add({
language: 'en',
licence: 2,
language: 'en'
}
- await server.videos.upload({ attributes: attributes })
+ await server.videos.upload({ attributes })
await server.videos.upload({ attributes: { ...attributes, name: attributes.name + ' duplicate' } })
}
licence: 3,
language: 'pl'
}
- await server.videos.upload({ attributes: attributes })
+ await server.videos.upload({ attributes })
}
{
const search = {
categoryOneOf: [ 3 ]
}
- const body = await command.advancedVideoSearch({ search: search })
+ const body = await command.advancedVideoSearch({ search })
expect(body.total).to.equal(1)
expect(body.data[0].name).to.equal('1111 2222 3333 - 3')
})
+ it('Should filter by UUIDs', async function () {
+ for (const uuid of [ videoUUID, videoShortUUID ]) {
+ const body = await command.advancedVideoSearch({ search: { uuids: [ uuid ] } })
+
+ expect(body.total).to.equal(1)
+ expect(body.data[0].name).to.equal('1111 2222 3333 - 3')
+ }
+
+ {
+ const body = await command.advancedVideoSearch({ search: { uuids: [ 'dfd70b83-639f-4980-94af-304a56ab4b35' ] } })
+
+ expect(body.total).to.equal(0)
+ expect(body.data).to.have.lengthOf(0)
+ }
+ })
+
it('Should search by host', async function () {
{
const body = await command.advancedVideoSearch({ search: { search: '6666 7777 8888', host: server.host } })