aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/tests/api/check-params/video-abuses.ts
diff options
context:
space:
mode:
Diffstat (limited to 'server/tests/api/check-params/video-abuses.ts')
-rw-r--r--server/tests/api/check-params/video-abuses.ts115
1 files changed, 97 insertions, 18 deletions
diff --git a/server/tests/api/check-params/video-abuses.ts b/server/tests/api/check-params/video-abuses.ts
index 68b965bbe..d2bed6a2a 100644
--- a/server/tests/api/check-params/video-abuses.ts
+++ b/server/tests/api/check-params/video-abuses.ts
@@ -3,14 +3,26 @@
3import 'mocha' 3import 'mocha'
4 4
5import { 5import {
6 createUser, flushTests, killallServers, makeGetRequest, makePostBodyRequest, runServer, ServerInfo, setAccessTokensToServers, 6 createUser,
7 uploadVideo, userLogin 7 deleteVideoAbuse,
8 flushTests,
9 killallServers,
10 makeGetRequest,
11 makePostBodyRequest,
12 runServer,
13 ServerInfo,
14 setAccessTokensToServers,
15 updateVideoAbuse,
16 uploadVideo,
17 userLogin
8} from '../../utils' 18} from '../../utils'
9import { checkBadCountPagination, checkBadSortPagination, checkBadStartPagination } from '../../utils/requests/check-api-params' 19import { checkBadCountPagination, checkBadSortPagination, checkBadStartPagination } from '../../utils/requests/check-api-params'
20import { VideoAbuseState } from '../../../../shared/models/videos'
10 21
11describe('Test video abuses API validators', function () { 22describe('Test video abuses API validators', function () {
12 let server: ServerInfo 23 let server: ServerInfo
13 let userAccessToken = '' 24 let userAccessToken = ''
25 let videoAbuseId: number
14 26
15 // --------------------------------------------------------------- 27 // ---------------------------------------------------------------
16 28
@@ -67,44 +79,111 @@ describe('Test video abuses API validators', function () {
67 79
68 describe('When reporting a video abuse', function () { 80 describe('When reporting a video abuse', function () {
69 const basePath = '/api/v1/videos/' 81 const basePath = '/api/v1/videos/'
82 let path: string
83
84 before(() => {
85 path = basePath + server.video.id + '/abuse'
86 })
70 87
71 it('Should fail with nothing', async function () { 88 it('Should fail with nothing', async function () {
72 const path = basePath + server.video.id + '/abuse'
73 const fields = {} 89 const fields = {}
74 await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) 90 await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
75 }) 91 })
76 92
77 it('Should fail with a wrong video', async function () { 93 it('Should fail with a wrong video', async function () {
78 const wrongPath = '/api/v1/videos/blabla/abuse' 94 const wrongPath = '/api/v1/videos/blabla/abuse'
79 const fields = { 95 const fields = { reason: 'my super reason' }
80 reason: 'my super reason' 96
81 }
82 await makePostBodyRequest({ url: server.url, path: wrongPath, token: server.accessToken, fields }) 97 await makePostBodyRequest({ url: server.url, path: wrongPath, token: server.accessToken, fields })
83 }) 98 })
84 99
85 it('Should fail with a non authenticated user', async function () { 100 it('Should fail with a non authenticated user', async function () {
86 const path = basePath + server.video.id + '/abuse' 101 const fields = { reason: 'my super reason' }
87 const fields = { 102
88 reason: 'my super reason'
89 }
90 await makePostBodyRequest({ url: server.url, path, token: 'hello', fields, statusCodeExpected: 401 }) 103 await makePostBodyRequest({ url: server.url, path, token: 'hello', fields, statusCodeExpected: 401 })
91 }) 104 })
92 105
93 it('Should fail with a reason too short', async function () { 106 it('Should fail with a reason too short', async function () {
94 const path = basePath + server.video.id + '/abuse' 107 const fields = { reason: 'h' }
95 const fields = { 108
96 reason: 'h'
97 }
98 await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) 109 await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
99 }) 110 })
100 111
101 it('Should fail with a reason too big', async function () { 112 it('Should fail with a reason too big', async function () {
102 const path = basePath + server.video.id + '/abuse' 113 const fields = { reason: 'super'.repeat(61) }
103 const fields = { 114
104 reason: 'super'.repeat(61)
105 }
106 await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) 115 await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
107 }) 116 })
117
118 it('Should succeed with the correct parameters', async function () {
119 const fields = { reason: 'super reason' }
120
121 const res = await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields, statusCodeExpected: 200 })
122 videoAbuseId = res.body.videoAbuse.id
123 })
124 })
125
126 describe('When updating a video abuse', function () {
127 const basePath = '/api/v1/videos/'
128 let path: string
129
130 before(() => {
131 path = basePath + server.video.id + '/abuse/' + videoAbuseId
132 })
133
134 it('Should fail with a non authenticated user', async function () {
135 await updateVideoAbuse(server.url, 'blabla', server.video.uuid, videoAbuseId, {}, 401)
136 })
137
138 it('Should fail with a non admin user', async function () {
139 await updateVideoAbuse(server.url, userAccessToken, server.video.uuid, videoAbuseId, {}, 403)
140 })
141
142 it('Should fail with a bad video id or bad video abuse id', async function () {
143 await updateVideoAbuse(server.url, server.accessToken, server.video.uuid, 45, {}, 404)
144 await updateVideoAbuse(server.url, server.accessToken, 52, videoAbuseId, {}, 404)
145 })
146
147 it('Should fail with a bad state', async function () {
148 const body = { state: 5 }
149 await updateVideoAbuse(server.url, server.accessToken, server.video.uuid, videoAbuseId, body, 400)
150 })
151
152 it('Should fail with a bad moderation comment', async function () {
153 const body = { moderationComment: 'b'.repeat(305) }
154 await updateVideoAbuse(server.url, server.accessToken, server.video.uuid, videoAbuseId, body, 400)
155 })
156
157 it('Should succeed with the correct params', async function () {
158 const body = { state: VideoAbuseState.ACCEPTED }
159 await updateVideoAbuse(server.url, server.accessToken, server.video.uuid, videoAbuseId, body)
160 })
161 })
162
163 describe('When deleting a video abuse', function () {
164 const basePath = '/api/v1/videos/'
165 let path: string
166
167 before(() => {
168 path = basePath + server.video.id + '/abuse/' + videoAbuseId
169 })
170
171 it('Should fail with a non authenticated user', async function () {
172 await deleteVideoAbuse(server.url, 'blabla', server.video.uuid, videoAbuseId, 401)
173 })
174
175 it('Should fail with a non admin user', async function () {
176 await deleteVideoAbuse(server.url, userAccessToken, server.video.uuid, videoAbuseId, 403)
177 })
178
179 it('Should fail with a bad video id or bad video abuse id', async function () {
180 await deleteVideoAbuse(server.url, server.accessToken, server.video.uuid, 45, 404)
181 await deleteVideoAbuse(server.url, server.accessToken, 52, videoAbuseId, 404)
182 })
183
184 it('Should succeed with the correct params', async function () {
185 await deleteVideoAbuse(server.url, server.accessToken, server.video.uuid, videoAbuseId)
186 })
108 }) 187 })
109 188
110 after(async function () { 189 after(async function () {