X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftests%2Fapi%2Fsearch%2Fsearch-playlists.ts;h=a357674c289c84cd2fdcef62f965483a5f44d135;hb=HEAD;hp=22e9b8fca08d132e0d5ad09b1ed8c0d3d61afea2;hpb=a24bd1ed41b43790bab6ba789580bb4e85f07d85;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tests/api/search/search-playlists.ts b/server/tests/api/search/search-playlists.ts index 22e9b8fca..a357674c2 100644 --- a/server/tests/api/search/search-playlists.ts +++ b/server/tests/api/search/search-playlists.ts @@ -1,53 +1,69 @@ /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ -import 'mocha' -import * as chai from 'chai' +import { expect } from 'chai' +import { VideoPlaylistPrivacy } from '@shared/models' import { cleanupTests, createSingleServer, + doubleFollow, PeerTubeServer, SearchCommand, setAccessTokensToServers, + setDefaultAccountAvatar, + setDefaultChannelAvatar, setDefaultVideoChannel -} from '@shared/extra-utils' -import { VideoPlaylistPrivacy } from '@shared/models' - -const expect = chai.expect +} from '@shared/server-commands' describe('Test playlists search', function () { - let server: PeerTubeServer = null + let server: PeerTubeServer + let remoteServer: PeerTubeServer let command: SearchCommand + let playlistUUID: string + let playlistShortUUID: string before(async function () { - this.timeout(30000) + this.timeout(120000) - server = await createSingleServer(1) + const servers = await Promise.all([ + createSingleServer(1), + createSingleServer(2) + ]) + server = servers[0] + remoteServer = servers[1] - await setAccessTokensToServers([ server ]) - await setDefaultVideoChannel([ server ]) + await setAccessTokensToServers([ remoteServer, server ]) + await setDefaultVideoChannel([ remoteServer, server ]) + await setDefaultChannelAvatar([ remoteServer, server ]) + await setDefaultAccountAvatar([ remoteServer, server ]) - const videoId = (await server.videos.quickUpload({ name: 'video' })).uuid + await servers[1].config.disableTranscoding() { + const videoId = (await server.videos.upload()).uuid + const attributes = { displayName: 'Dr. Kenzo Tenma hospital videos', privacy: VideoPlaylistPrivacy.PUBLIC, videoChannelId: server.store.channel.id } const created = await server.playlists.create({ attributes }) + playlistUUID = created.uuid + playlistShortUUID = created.shortUUID await server.playlists.addElement({ playlistId: created.id, attributes: { videoId } }) } { + const videoId = (await remoteServer.videos.upload()).uuid + const attributes = { - displayName: 'Johan & Anna Libert musics', + displayName: 'Johan & Anna Libert music videos', privacy: VideoPlaylistPrivacy.PUBLIC, - videoChannelId: server.store.channel.id + videoChannelId: remoteServer.store.channel.id } - const created = await server.playlists.create({ attributes }) + const created = await remoteServer.playlists.create({ attributes }) - await server.playlists.addElement({ playlistId: created.id, attributes: { videoId } }) + await remoteServer.playlists.addElement({ playlistId: created.id, attributes: { videoId } }) } { @@ -59,6 +75,8 @@ describe('Test playlists search', function () { await server.playlists.create({ attributes }) } + await doubleFollow(server, remoteServer) + command = server.search }) @@ -87,7 +105,7 @@ describe('Test playlists search', function () { { const search = { - search: 'Anna Livert', + search: 'Anna Livert music', start: 0, count: 1 } @@ -96,7 +114,52 @@ describe('Test playlists search', function () { expect(body.data).to.have.lengthOf(1) const playlist = body.data[0] - expect(playlist.displayName).to.equal('Johan & Anna Libert musics') + expect(playlist.displayName).to.equal('Johan & Anna Libert music videos') + } + }) + + it('Should filter by host', async function () { + { + const search = { search: 'tenma', host: server.host } + const body = await command.advancedPlaylistSearch({ search }) + expect(body.total).to.equal(1) + expect(body.data).to.have.lengthOf(1) + + const playlist = body.data[0] + expect(playlist.displayName).to.equal('Dr. Kenzo Tenma hospital videos') + } + + { + const search = { search: 'Anna', host: 'example.com' } + const body = await command.advancedPlaylistSearch({ search }) + expect(body.total).to.equal(0) + expect(body.data).to.have.lengthOf(0) + } + + { + const search = { search: 'video', host: remoteServer.host } + const body = await command.advancedPlaylistSearch({ search }) + expect(body.total).to.equal(1) + expect(body.data).to.have.lengthOf(1) + + const playlist = body.data[0] + expect(playlist.displayName).to.equal('Johan & Anna Libert music videos') + } + }) + + it('Should filter by UUIDs', async function () { + for (const uuid of [ playlistUUID, playlistShortUUID ]) { + const body = await command.advancedPlaylistSearch({ search: { uuids: [ uuid ] } }) + + expect(body.total).to.equal(1) + expect(body.data[0].displayName).to.equal('Dr. Kenzo Tenma hospital videos') + } + + { + const body = await command.advancedPlaylistSearch({ search: { uuids: [ 'dfd70b83-639f-4980-94af-304a56ab4b35' ] } }) + + expect(body.total).to.equal(0) + expect(body.data).to.have.lengthOf(0) } }) @@ -112,6 +175,6 @@ describe('Test playlists search', function () { }) after(async function () { - await cleanupTests([ server ]) + await cleanupTests([ server, remoteServer ]) }) })