aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/tests/api/search
diff options
context:
space:
mode:
Diffstat (limited to 'server/tests/api/search')
-rw-r--r--server/tests/api/search/search-channels.ts58
-rw-r--r--server/tests/api/search/search-playlists.ts58
2 files changed, 101 insertions, 15 deletions
diff --git a/server/tests/api/search/search-channels.ts b/server/tests/api/search/search-channels.ts
index 4da2d0ece..d3b0f4321 100644
--- a/server/tests/api/search/search-channels.ts
+++ b/server/tests/api/search/search-channels.ts
@@ -2,24 +2,33 @@
2 2
3import 'mocha' 3import 'mocha'
4import * as chai from 'chai' 4import * as chai from 'chai'
5import { cleanupTests, createSingleServer, PeerTubeServer, SearchCommand, setAccessTokensToServers } from '@shared/extra-utils' 5import {
6 cleanupTests,
7 createSingleServer,
8 doubleFollow,
9 PeerTubeServer,
10 SearchCommand,
11 setAccessTokensToServers
12} from '@shared/extra-utils'
6import { VideoChannel } from '@shared/models' 13import { VideoChannel } from '@shared/models'
7 14
8const expect = chai.expect 15const expect = chai.expect
9 16
10describe('Test channels search', function () { 17describe('Test channels search', function () {
11 let server: PeerTubeServer = null 18 let server: PeerTubeServer
19 let remoteServer: PeerTubeServer
12 let command: SearchCommand 20 let command: SearchCommand
13 21
14 before(async function () { 22 before(async function () {
15 this.timeout(30000) 23 this.timeout(30000)
16 24
17 server = await createSingleServer(1) 25 server = await createSingleServer(1)
26 remoteServer = await createSingleServer(2, { transcoding: { enabled: false } })
18 27
19 await setAccessTokensToServers([ server ]) 28 await setAccessTokensToServers([ server, remoteServer ])
20 29
21 { 30 {
22 await server.users.create({ username: 'user1', password: 'password' }) 31 await server.users.create({ username: 'user1' })
23 const channel = { 32 const channel = {
24 name: 'squall_channel', 33 name: 'squall_channel',
25 displayName: 'Squall channel' 34 displayName: 'Squall channel'
@@ -27,6 +36,19 @@ describe('Test channels search', function () {
27 await server.channels.create({ attributes: channel }) 36 await server.channels.create({ attributes: channel })
28 } 37 }
29 38
39 {
40 await remoteServer.users.create({ username: 'user1' })
41 const channel = {
42 name: 'zell_channel',
43 displayName: 'Zell channel'
44 }
45 const { id } = await remoteServer.channels.create({ attributes: channel })
46
47 await remoteServer.videos.upload({ attributes: { channelId: id } })
48 }
49
50 await doubleFollow(server, remoteServer)
51
30 command = server.search 52 command = server.search
31 }) 53 })
32 54
@@ -66,6 +88,34 @@ describe('Test channels search', function () {
66 } 88 }
67 }) 89 })
68 90
91 it('Should filter by host', async function () {
92 {
93 const search = { search: 'channel', host: remoteServer.host }
94
95 const body = await command.advancedChannelSearch({ search })
96 expect(body.total).to.equal(1)
97 expect(body.data).to.have.lengthOf(1)
98 expect(body.data[0].displayName).to.equal('Zell channel')
99 }
100
101 {
102 const search = { search: 'Sq', host: server.host }
103
104 const body = await command.advancedChannelSearch({ search })
105 expect(body.total).to.equal(1)
106 expect(body.data).to.have.lengthOf(1)
107 expect(body.data[0].displayName).to.equal('Squall channel')
108 }
109
110 {
111 const search = { search: 'Squall', host: 'example.com' }
112
113 const body = await command.advancedChannelSearch({ search })
114 expect(body.total).to.equal(0)
115 expect(body.data).to.have.lengthOf(0)
116 }
117 })
118
69 after(async function () { 119 after(async function () {
70 await cleanupTests([ server ]) 120 await cleanupTests([ server ])
71 }) 121 })
diff --git a/server/tests/api/search/search-playlists.ts b/server/tests/api/search/search-playlists.ts
index 22e9b8fca..c3b318f5b 100644
--- a/server/tests/api/search/search-playlists.ts
+++ b/server/tests/api/search/search-playlists.ts
@@ -5,6 +5,7 @@ import * as chai from 'chai'
5import { 5import {
6 cleanupTests, 6 cleanupTests,
7 createSingleServer, 7 createSingleServer,
8 doubleFollow,
8 PeerTubeServer, 9 PeerTubeServer,
9 SearchCommand, 10 SearchCommand,
10 setAccessTokensToServers, 11 setAccessTokensToServers,
@@ -15,20 +16,22 @@ import { VideoPlaylistPrivacy } from '@shared/models'
15const expect = chai.expect 16const expect = chai.expect
16 17
17describe('Test playlists search', function () { 18describe('Test playlists search', function () {
18 let server: PeerTubeServer = null 19 let server: PeerTubeServer
20 let remoteServer: PeerTubeServer
19 let command: SearchCommand 21 let command: SearchCommand
20 22
21 before(async function () { 23 before(async function () {
22 this.timeout(30000) 24 this.timeout(30000)
23 25
24 server = await createSingleServer(1) 26 server = await createSingleServer(1)
27 remoteServer = await createSingleServer(2, { transcoding: { enabled: false } })
25 28
26 await setAccessTokensToServers([ server ]) 29 await setAccessTokensToServers([ remoteServer, server ])
27 await setDefaultVideoChannel([ server ]) 30 await setDefaultVideoChannel([ remoteServer, server ])
28
29 const videoId = (await server.videos.quickUpload({ name: 'video' })).uuid
30 31
31 { 32 {
33 const videoId = (await server.videos.upload()).uuid
34
32 const attributes = { 35 const attributes = {
33 displayName: 'Dr. Kenzo Tenma hospital videos', 36 displayName: 'Dr. Kenzo Tenma hospital videos',
34 privacy: VideoPlaylistPrivacy.PUBLIC, 37 privacy: VideoPlaylistPrivacy.PUBLIC,
@@ -40,14 +43,16 @@ describe('Test playlists search', function () {
40 } 43 }
41 44
42 { 45 {
46 const videoId = (await remoteServer.videos.upload()).uuid
47
43 const attributes = { 48 const attributes = {
44 displayName: 'Johan & Anna Libert musics', 49 displayName: 'Johan & Anna Libert music videos',
45 privacy: VideoPlaylistPrivacy.PUBLIC, 50 privacy: VideoPlaylistPrivacy.PUBLIC,
46 videoChannelId: server.store.channel.id 51 videoChannelId: remoteServer.store.channel.id
47 } 52 }
48 const created = await server.playlists.create({ attributes }) 53 const created = await remoteServer.playlists.create({ attributes })
49 54
50 await server.playlists.addElement({ playlistId: created.id, attributes: { videoId } }) 55 await remoteServer.playlists.addElement({ playlistId: created.id, attributes: { videoId } })
51 } 56 }
52 57
53 { 58 {
@@ -59,6 +64,8 @@ describe('Test playlists search', function () {
59 await server.playlists.create({ attributes }) 64 await server.playlists.create({ attributes })
60 } 65 }
61 66
67 await doubleFollow(server, remoteServer)
68
62 command = server.search 69 command = server.search
63 }) 70 })
64 71
@@ -87,7 +94,7 @@ describe('Test playlists search', function () {
87 94
88 { 95 {
89 const search = { 96 const search = {
90 search: 'Anna Livert', 97 search: 'Anna Livert music',
91 start: 0, 98 start: 0,
92 count: 1 99 count: 1
93 } 100 }
@@ -96,7 +103,36 @@ describe('Test playlists search', function () {
96 expect(body.data).to.have.lengthOf(1) 103 expect(body.data).to.have.lengthOf(1)
97 104
98 const playlist = body.data[0] 105 const playlist = body.data[0]
99 expect(playlist.displayName).to.equal('Johan & Anna Libert musics') 106 expect(playlist.displayName).to.equal('Johan & Anna Libert music videos')
107 }
108 })
109
110 it('Should filter by host', async function () {
111 {
112 const search = { search: 'tenma', host: server.host }
113 const body = await command.advancedPlaylistSearch({ search })
114 expect(body.total).to.equal(1)
115 expect(body.data).to.have.lengthOf(1)
116
117 const playlist = body.data[0]
118 expect(playlist.displayName).to.equal('Dr. Kenzo Tenma hospital videos')
119 }
120
121 {
122 const search = { search: 'Anna', host: 'example.com' }
123 const body = await command.advancedPlaylistSearch({ search })
124 expect(body.total).to.equal(0)
125 expect(body.data).to.have.lengthOf(0)
126 }
127
128 {
129 const search = { search: 'video', host: remoteServer.host }
130 const body = await command.advancedPlaylistSearch({ search })
131 expect(body.total).to.equal(1)
132 expect(body.data).to.have.lengthOf(1)
133
134 const playlist = body.data[0]
135 expect(playlist.displayName).to.equal('Johan & Anna Libert music videos')
100 } 136 }
101 }) 137 })
102 138