X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftests%2Fapi%2Fsearch%2Fsearch-channels.ts;h=8a92def61d7af42d5b5339e61fbb507025a96be5;hb=c55e3d7227fe1453869e309025996b9d75256d5d;hp=6c9ee73cee8d00595ccd6287de72b2655c8d1f95;hpb=a54618880c394ad7571f3f3222dc96ec2dd10d9a;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tests/api/search/search-channels.ts b/server/tests/api/search/search-channels.ts index 6c9ee73ce..8a92def61 100644 --- a/server/tests/api/search/search-channels.ts +++ b/server/tests/api/search/search-channels.ts @@ -2,32 +2,58 @@ import 'mocha' import * as chai from 'chai' -import { cleanupTests, createUser, flushAndRunServer, SearchCommand, ServerInfo, setAccessTokensToServers } from '@shared/extra-utils' +import { + cleanupTests, + createSingleServer, + doubleFollow, + PeerTubeServer, + SearchCommand, + setAccessTokensToServers +} from '@shared/server-commands' import { VideoChannel } from '@shared/models' const expect = chai.expect describe('Test channels search', function () { - let server: ServerInfo = null + let server: PeerTubeServer + let remoteServer: PeerTubeServer let command: SearchCommand before(async function () { - this.timeout(30000) + this.timeout(120000) - server = await flushAndRunServer(1) + const servers = await Promise.all([ + createSingleServer(1), + createSingleServer(2, { transcoding: { enabled: false } }) + ]) + server = servers[0] + remoteServer = servers[1] - await setAccessTokensToServers([ server ]) + await setAccessTokensToServers([ server, remoteServer ]) { - await createUser({ url: server.url, accessToken: server.accessToken, username: 'user1', password: 'password' }) + await server.users.create({ username: 'user1' }) const channel = { name: 'squall_channel', displayName: 'Squall channel' } - await server.channelsCommand.create({ attributes: channel }) + await server.channels.create({ attributes: channel }) } - command = server.searchCommand + { + await remoteServer.users.create({ username: 'user1' }) + const channel = { + name: 'zell_channel', + displayName: 'Zell channel' + } + const { id } = await remoteServer.channels.create({ attributes: channel }) + + await remoteServer.videos.upload({ attributes: { channelId: id } }) + } + + await doubleFollow(server, remoteServer) + + command = server.search }) it('Should make a simple search and not have results', async function () { @@ -66,7 +92,65 @@ describe('Test channels search', function () { } }) + it('Should filter by host', async function () { + { + const search = { search: 'channel', host: remoteServer.host } + + const body = await command.advancedChannelSearch({ search }) + expect(body.total).to.equal(1) + expect(body.data).to.have.lengthOf(1) + expect(body.data[0].displayName).to.equal('Zell channel') + } + + { + const search = { search: 'Sq', host: server.host } + + const body = await command.advancedChannelSearch({ search }) + expect(body.total).to.equal(1) + expect(body.data).to.have.lengthOf(1) + expect(body.data[0].displayName).to.equal('Squall channel') + } + + { + const search = { search: 'Squall', host: 'example.com' } + + const body = await command.advancedChannelSearch({ search }) + expect(body.total).to.equal(0) + expect(body.data).to.have.lengthOf(0) + } + }) + + it('Should filter by names', async function () { + { + const body = await command.advancedChannelSearch({ search: { handles: [ 'squall_channel', 'zell_channel' ] } }) + expect(body.total).to.equal(1) + expect(body.data).to.have.lengthOf(1) + expect(body.data[0].displayName).to.equal('Squall channel') + } + + { + const body = await command.advancedChannelSearch({ search: { handles: [ 'squall_channel@' + server.host ] } }) + expect(body.total).to.equal(1) + expect(body.data).to.have.lengthOf(1) + expect(body.data[0].displayName).to.equal('Squall channel') + } + + { + const body = await command.advancedChannelSearch({ search: { handles: [ 'chocobozzz_channel' ] } }) + expect(body.total).to.equal(0) + expect(body.data).to.have.lengthOf(0) + } + + { + const body = await command.advancedChannelSearch({ search: { handles: [ 'squall_channel', 'zell_channel@' + remoteServer.host ] } }) + expect(body.total).to.equal(2) + expect(body.data).to.have.lengthOf(2) + expect(body.data[0].displayName).to.equal('Squall channel') + expect(body.data[1].displayName).to.equal('Zell channel') + } + }) + after(async function () { - await cleanupTests([ server ]) + await cleanupTests([ server, remoteServer ]) }) })