/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
-import * as chai from 'chai'
import 'mocha'
+import * as chai from 'chai'
import {
- addVideoChannel,
cleanupTests,
createUser,
- deleteVideoChannel,
flushAndRunMultipleServers,
- getVideoChannelsList,
getVideoChannelVideos,
+ SearchCommand,
ServerInfo,
setAccessTokensToServers,
updateMyUser,
updateVideo,
- updateVideoChannel,
uploadVideo,
userLogin,
- wait
-} from '../../../../shared/extra-utils'
-import { waitJobs } from '../../../../shared/extra-utils/server/jobs'
-import { VideoChannel } from '../../../../shared/models/videos'
-import { searchVideoChannel } from '../../../../shared/extra-utils/search/video-channels'
+ wait,
+ waitJobs
+} from '@shared/extra-utils'
+import { VideoChannel } from '@shared/models'
const expect = chai.expect
let userServer2Token: string
let videoServer2UUID: string
let channelIdServer2: number
+ let command: SearchCommand
before(async function () {
this.timeout(120000)
name: 'channel1_server1',
displayName: 'Channel 1 server 1'
}
- await addVideoChannel(servers[0].url, servers[0].accessToken, channel)
+ await servers[0].channelsCommand.create({ attributes: channel })
}
{
name: 'channel1_server2',
displayName: 'Channel 1 server 2'
}
- const resChannel = await addVideoChannel(servers[1].url, userServer2Token, channel)
- channelIdServer2 = resChannel.body.videoChannel.id
+ const created = await servers[1].channelsCommand.create({ token: userServer2Token, attributes: channel })
+ channelIdServer2 = created.id
const res = await uploadVideo(servers[1].url, userServer2Token, { name: 'video 1 server 2', channelId: channelIdServer2 })
videoServer2UUID = res.body.video.uuid
}
await waitJobs(servers)
+
+ command = servers[0].searchCommand
})
it('Should not find a remote video channel', async function () {
{
const search = 'http://localhost:' + servers[1].port + '/video-channels/channel1_server3'
- const res = await searchVideoChannel(servers[0].url, search, servers[0].accessToken)
+ const body = await command.searchChannels({ search, token: servers[0].accessToken })
- expect(res.body.total).to.equal(0)
- expect(res.body.data).to.be.an('array')
- expect(res.body.data).to.have.lengthOf(0)
+ expect(body.total).to.equal(0)
+ expect(body.data).to.be.an('array')
+ expect(body.data).to.have.lengthOf(0)
}
{
// Without token
const search = 'http://localhost:' + servers[1].port + '/video-channels/channel1_server2'
- const res = await searchVideoChannel(servers[0].url, search)
+ const body = await command.searchChannels({ search })
- expect(res.body.total).to.equal(0)
- expect(res.body.data).to.be.an('array')
- expect(res.body.data).to.have.lengthOf(0)
+ expect(body.total).to.equal(0)
+ expect(body.data).to.be.an('array')
+ expect(body.data).to.have.lengthOf(0)
}
})
]
for (const search of searches) {
- const res = await searchVideoChannel(servers[0].url, search)
+ const body = await command.searchChannels({ search })
- expect(res.body.total).to.equal(1)
- expect(res.body.data).to.be.an('array')
- expect(res.body.data).to.have.lengthOf(1)
- expect(res.body.data[0].name).to.equal('channel1_server1')
- expect(res.body.data[0].displayName).to.equal('Channel 1 server 1')
+ expect(body.total).to.equal(1)
+ expect(body.data).to.be.an('array')
+ expect(body.data).to.have.lengthOf(1)
+ expect(body.data[0].name).to.equal('channel1_server1')
+ expect(body.data[0].displayName).to.equal('Channel 1 server 1')
+ }
+ })
+
+ it('Should search a local video channel with an alternative URL', async function () {
+ const search = 'http://localhost:' + servers[0].port + '/c/channel1_server1'
+
+ for (const token of [ undefined, servers[0].accessToken ]) {
+ const body = await command.searchChannels({ search, token })
+
+ expect(body.total).to.equal(1)
+ expect(body.data).to.be.an('array')
+ expect(body.data).to.have.lengthOf(1)
+ expect(body.data[0].name).to.equal('channel1_server1')
+ expect(body.data[0].displayName).to.equal('Channel 1 server 1')
}
})
it('Should search a remote video channel with URL or handle', async function () {
const searches = [
'http://localhost:' + servers[1].port + '/video-channels/channel1_server2',
+ 'http://localhost:' + servers[1].port + '/c/channel1_server2',
+ 'http://localhost:' + servers[1].port + '/c/channel1_server2/videos',
'channel1_server2@localhost:' + servers[1].port
]
for (const search of searches) {
- const res = await searchVideoChannel(servers[0].url, search, servers[0].accessToken)
+ const body = await command.searchChannels({ search, token: servers[0].accessToken })
- expect(res.body.total).to.equal(1)
- expect(res.body.data).to.be.an('array')
- expect(res.body.data).to.have.lengthOf(1)
- expect(res.body.data[0].name).to.equal('channel1_server2')
- expect(res.body.data[0].displayName).to.equal('Channel 1 server 2')
+ expect(body.total).to.equal(1)
+ expect(body.data).to.be.an('array')
+ expect(body.data).to.have.lengthOf(1)
+ expect(body.data[0].name).to.equal('channel1_server2')
+ expect(body.data[0].displayName).to.equal('Channel 1 server 2')
}
})
it('Should not list this remote video channel', async function () {
- const res = await getVideoChannelsList(servers[0].url, 0, 5)
- expect(res.body.total).to.equal(3)
- expect(res.body.data).to.have.lengthOf(3)
- expect(res.body.data[0].name).to.equal('channel1_server1')
- expect(res.body.data[1].name).to.equal('user1_server1_channel')
- expect(res.body.data[2].name).to.equal('root_channel')
+ const body = await servers[0].channelsCommand.list()
+ expect(body.total).to.equal(3)
+ expect(body.data).to.have.lengthOf(3)
+ expect(body.data[0].name).to.equal('channel1_server1')
+ expect(body.data[1].name).to.equal('user1_server1_channel')
+ expect(body.data[2].name).to.equal('root_channel')
})
it('Should list video channel videos of server 2 without token', async function () {
it('Should update video channel of server 2, and refresh it on server 1', async function () {
this.timeout(60000)
- await updateVideoChannel(servers[1].url, userServer2Token, 'channel1_server2', { displayName: 'channel updated' })
+ await servers[1].channelsCommand.update({
+ token: userServer2Token,
+ channelName: 'channel1_server2',
+ attributes: { displayName: 'channel updated' }
+ })
await updateMyUser({ url: servers[1].url, accessToken: userServer2Token, displayName: 'user updated' })
await waitJobs(servers)
await wait(10000)
const search = 'http://localhost:' + servers[1].port + '/video-channels/channel1_server2'
- const res = await searchVideoChannel(servers[0].url, search, servers[0].accessToken)
- expect(res.body.total).to.equal(1)
- expect(res.body.data).to.have.lengthOf(1)
+ const body = await command.searchChannels({ search, token: servers[0].accessToken })
+ expect(body.total).to.equal(1)
+ expect(body.data).to.have.lengthOf(1)
- const videoChannel: VideoChannel = res.body.data[0]
+ const videoChannel: VideoChannel = body.data[0]
expect(videoChannel.displayName).to.equal('channel updated')
// We don't return the owner account for now
await wait(10000)
const search = 'http://localhost:' + servers[1].port + '/video-channels/channel1_server2'
- await searchVideoChannel(servers[0].url, search, servers[0].accessToken)
+ await command.searchChannels({ search, token: servers[0].accessToken })
await waitJobs(servers)
it('Should delete video channel of server 2, and delete it on server 1', async function () {
this.timeout(60000)
- await deleteVideoChannel(servers[1].url, userServer2Token, 'channel1_server2')
+ await servers[1].channelsCommand.delete({ token: userServer2Token, channelName: 'channel1_server2' })
await waitJobs(servers)
// Expire video
await wait(10000)
const search = 'http://localhost:' + servers[1].port + '/video-channels/channel1_server2'
- const res = await searchVideoChannel(servers[0].url, search, servers[0].accessToken)
- expect(res.body.total).to.equal(0)
- expect(res.body.data).to.have.lengthOf(0)
+ const body = await command.searchChannels({ search, token: servers[0].accessToken })
+ expect(body.total).to.equal(0)
+ expect(body.data).to.have.lengthOf(0)
})
after(async function () {