1 /* tslint:disable:no-unused-expression */
11 setAccessTokensToServers,
12 setDefaultVideoChannel,
14 } from '../../../../shared/extra-utils'
15 import { UserRole } from '../../../../shared/models/users'
16 import { VideoPlaylistPrivacy } from '../../../../shared/models/videos/playlist/video-playlist-privacy.model'
18 async function testEndpoints (server: ServerInfo, token: string, filter: string, statusCodeExpected: number) {
20 '/api/v1/video-channels/root_channel/videos',
21 '/api/v1/accounts/root/videos',
23 '/api/v1/search/videos'
26 for (const path of paths) {
27 await makeGetRequest({
39 describe('Test videos filters', function () {
40 let server: ServerInfo
41 let userAccessToken: string
42 let moderatorAccessToken: string
43 let playlistUUID: string
45 // ---------------------------------------------------------------
47 before(async function () {
50 server = await flushAndRunServer(1)
52 await setAccessTokensToServers([ server ])
53 await setDefaultVideoChannel([ server ])
55 const user = { username: 'user1', password: 'my super password' }
56 await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
57 userAccessToken = await userLogin(server, user)
59 const moderator = { username: 'moderator', password: 'my super password' }
63 accessToken: server.accessToken,
64 username: moderator.username,
65 password: moderator.password,
66 videoQuota: undefined,
67 videoQuotaDaily: undefined,
68 role: UserRole.MODERATOR
71 moderatorAccessToken = await userLogin(server, moderator)
74 describe('When setting a video filter', function () {
76 it('Should fail with a bad filter', async function () {
77 await testEndpoints(server, server.accessToken, 'bad-filter', 400)
80 it('Should succeed with a good filter', async function () {
81 await testEndpoints(server, server.accessToken,'local', 200)
84 it('Should fail to list all-local with a simple user', async function () {
85 await testEndpoints(server, userAccessToken, 'all-local', 401)
88 it('Should succeed to list all-local with a moderator', async function () {
89 await testEndpoints(server, moderatorAccessToken, 'all-local', 200)
92 it('Should succeed to list all-local with an admin', async function () {
93 await testEndpoints(server, server.accessToken, 'all-local', 200)
96 // Because we cannot authenticate the user on the RSS endpoint
97 it('Should fail on the feeds endpoint with the all-local filter', async function () {
98 await makeGetRequest({
100 path: '/feeds/videos.json',
101 statusCodeExpected: 401,
108 it('Should succeed on the feeds endpoint with the local filter', async function () {
109 await makeGetRequest({
111 path: '/feeds/videos.json',
112 statusCodeExpected: 200,
120 after(async function () {
121 await cleanupTests([ server ])