From fbd67e7f386504e50f2504cb6386700a58906f16 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 28 Jul 2021 16:40:21 +0200 Subject: Add ability to search by uuids/actor names --- server/tests/api/check-params/search.ts | 15 +++++++++++++++ server/tests/api/search/search-channels.ts | 24 ++++++++++++++++++++++-- server/tests/api/search/search-playlists.ts | 28 ++++++++++++++++++++++++++-- server/tests/api/search/search-videos.ts | 28 +++++++++++++++++++++++++--- 4 files changed, 88 insertions(+), 7 deletions(-) (limited to 'server/tests') diff --git a/server/tests/api/check-params/search.ts b/server/tests/api/check-params/search.ts index 72ad6c842..789ea7754 100644 --- a/server/tests/api/check-params/search.ts +++ b/server/tests/api/check-params/search.ts @@ -146,6 +146,16 @@ describe('Test videos API validator', function () { const customQuery = { ...query, host: 'example.com' } await makeGetRequest({ url: server.url, path, query: customQuery, expectedStatus: HttpStatusCode.OK_200 }) }) + + it('Should fail with invalid uuids', async function () { + const customQuery = { ...query, uuids: [ '6565', 'dfd70b83-639f-4980-94af-304a56ab4b35' ] } + await makeGetRequest({ url: server.url, path, query: customQuery, expectedStatus: HttpStatusCode.BAD_REQUEST_400 }) + }) + + it('Should succeed with valid uuids', async function () { + const customQuery = { ...query, uuids: [ 'dfd70b83-639f-4980-94af-304a56ab4b35' ] } + await makeGetRequest({ url: server.url, path, query: customQuery, expectedStatus: HttpStatusCode.OK_200 }) + }) }) describe('When searching video playlists', function () { @@ -172,6 +182,11 @@ describe('Test videos API validator', function () { await makeGetRequest({ url: server.url, path, query: { ...query, host: '6565' }, expectedStatus: HttpStatusCode.BAD_REQUEST_400 }) }) + it('Should fail with invalid uuids', async function () { + const customQuery = { ...query, uuids: [ '6565', 'dfd70b83-639f-4980-94af-304a56ab4b35' ] } + await makeGetRequest({ url: server.url, path, query: customQuery, expectedStatus: HttpStatusCode.BAD_REQUEST_400 }) + }) + it('Should succeed with the correct parameters', async function () { await makeGetRequest({ url: server.url, path, query, expectedStatus: HttpStatusCode.OK_200 }) }) diff --git a/server/tests/api/search/search-channels.ts b/server/tests/api/search/search-channels.ts index aab03bfd1..ef78c0f67 100644 --- a/server/tests/api/search/search-channels.ts +++ b/server/tests/api/search/search-channels.ts @@ -22,8 +22,12 @@ describe('Test channels search', function () { before(async function () { this.timeout(120000) - server = await createSingleServer(1) - remoteServer = await createSingleServer(2, { transcoding: { enabled: false } }) + const servers = await Promise.all([ + createSingleServer(1), + createSingleServer(2, { transcoding: { enabled: false } }) + ]) + server = servers[0] + remoteServer = servers[1] await setAccessTokensToServers([ server, remoteServer ]) @@ -116,6 +120,22 @@ describe('Test channels search', function () { } }) + it('Should filter by names', async function () { + { + const body = await command.advancedChannelSearch({ search: { names: [ 'squall_channel', 'zell_channel' ] } }) + 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') + } + + { + const body = await command.advancedChannelSearch({ search: { names: [ 'chocobozzz_channel' ] } }) + expect(body.total).to.equal(0) + expect(body.data).to.have.lengthOf(0) + } + }) + after(async function () { await cleanupTests([ server ]) }) diff --git a/server/tests/api/search/search-playlists.ts b/server/tests/api/search/search-playlists.ts index e7e53ff41..85be1eb59 100644 --- a/server/tests/api/search/search-playlists.ts +++ b/server/tests/api/search/search-playlists.ts @@ -19,12 +19,18 @@ describe('Test playlists search', function () { let server: PeerTubeServer let remoteServer: PeerTubeServer let command: SearchCommand + let playlistUUID: string + let playlistShortUUID: string before(async function () { this.timeout(120000) - server = await createSingleServer(1) - remoteServer = await createSingleServer(2, { transcoding: { enabled: false } }) + const servers = await Promise.all([ + createSingleServer(1), + createSingleServer(2, { transcoding: { enabled: false } }) + ]) + server = servers[0] + remoteServer = servers[1] await setAccessTokensToServers([ remoteServer, server ]) await setDefaultVideoChannel([ remoteServer, server ]) @@ -38,6 +44,8 @@ describe('Test playlists search', function () { 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 } }) } @@ -136,6 +144,22 @@ describe('Test playlists search', function () { } }) + 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) + } + }) + it('Should not display playlists without videos', async function () { const search = { search: 'Lunge', diff --git a/server/tests/api/search/search-videos.ts b/server/tests/api/search/search-videos.ts index a56dc1d87..bd1e4d266 100644 --- a/server/tests/api/search/search-videos.ts +++ b/server/tests/api/search/search-videos.ts @@ -22,14 +22,19 @@ describe('Test videos search', function () { let remoteServer: PeerTubeServer let startDate: string let videoUUID: string + let videoShortUUID: string let command: SearchCommand before(async function () { this.timeout(120000) - 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 ]) @@ -50,8 +55,9 @@ describe('Test videos search', function () { { 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', @@ -479,6 +485,22 @@ describe('Test videos search', function () { 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 } }) -- cgit v1.2.3