diff options
Diffstat (limited to 'server/tests/api/check-params/live.ts')
-rw-r--r-- | server/tests/api/check-params/live.ts | 52 |
1 files changed, 27 insertions, 25 deletions
diff --git a/server/tests/api/check-params/live.ts b/server/tests/api/check-params/live.ts index c171b1f81..933d8abf2 100644 --- a/server/tests/api/check-params/live.ts +++ b/server/tests/api/check-params/live.ts | |||
@@ -2,9 +2,10 @@ | |||
2 | 2 | ||
3 | import 'mocha' | 3 | import 'mocha' |
4 | import { omit } from 'lodash' | 4 | import { omit } from 'lodash' |
5 | import { join } from 'path' | 5 | import { LiveVideo, VideoCreateResult, VideoPrivacy } from '@shared/models' |
6 | import { LiveVideo, VideoPrivacy } from '@shared/models' | 6 | import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' |
7 | import { | 7 | import { |
8 | buildAbsoluteFixturePath, | ||
8 | cleanupTests, | 9 | cleanupTests, |
9 | createUser, | 10 | createUser, |
10 | flushAndRunServer, | 11 | flushAndRunServer, |
@@ -24,14 +25,13 @@ import { | |||
24 | userLogin, | 25 | userLogin, |
25 | waitUntilLivePublished | 26 | waitUntilLivePublished |
26 | } from '../../../../shared/extra-utils' | 27 | } from '../../../../shared/extra-utils' |
27 | import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' | ||
28 | 28 | ||
29 | describe('Test video lives API validator', function () { | 29 | describe('Test video lives API validator', function () { |
30 | const path = '/api/v1/videos/live' | 30 | const path = '/api/v1/videos/live' |
31 | let server: ServerInfo | 31 | let server: ServerInfo |
32 | let userAccessToken = '' | 32 | let userAccessToken = '' |
33 | let channelId: number | 33 | let channelId: number |
34 | let videoId: number | 34 | let video: VideoCreateResult |
35 | let videoIdNotLive: number | 35 | let videoIdNotLive: number |
36 | 36 | ||
37 | // --------------------------------------------------------------- | 37 | // --------------------------------------------------------------- |
@@ -180,7 +180,7 @@ describe('Test video lives API validator', function () { | |||
180 | it('Should fail with an incorrect thumbnail file', async function () { | 180 | it('Should fail with an incorrect thumbnail file', async function () { |
181 | const fields = baseCorrectParams | 181 | const fields = baseCorrectParams |
182 | const attaches = { | 182 | const attaches = { |
183 | thumbnailfile: join(__dirname, '..', '..', 'fixtures', 'video_short.mp4') | 183 | thumbnailfile: buildAbsoluteFixturePath('video_short.mp4') |
184 | } | 184 | } |
185 | 185 | ||
186 | await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches }) | 186 | await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches }) |
@@ -189,7 +189,7 @@ describe('Test video lives API validator', function () { | |||
189 | it('Should fail with a big thumbnail file', async function () { | 189 | it('Should fail with a big thumbnail file', async function () { |
190 | const fields = baseCorrectParams | 190 | const fields = baseCorrectParams |
191 | const attaches = { | 191 | const attaches = { |
192 | thumbnailfile: join(__dirname, '..', '..', 'fixtures', 'preview-big.png') | 192 | thumbnailfile: buildAbsoluteFixturePath('preview-big.png') |
193 | } | 193 | } |
194 | 194 | ||
195 | await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches }) | 195 | await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches }) |
@@ -198,7 +198,7 @@ describe('Test video lives API validator', function () { | |||
198 | it('Should fail with an incorrect preview file', async function () { | 198 | it('Should fail with an incorrect preview file', async function () { |
199 | const fields = baseCorrectParams | 199 | const fields = baseCorrectParams |
200 | const attaches = { | 200 | const attaches = { |
201 | previewfile: join(__dirname, '..', '..', 'fixtures', 'video_short.mp4') | 201 | previewfile: buildAbsoluteFixturePath('video_short.mp4') |
202 | } | 202 | } |
203 | 203 | ||
204 | await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches }) | 204 | await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches }) |
@@ -207,7 +207,7 @@ describe('Test video lives API validator', function () { | |||
207 | it('Should fail with a big preview file', async function () { | 207 | it('Should fail with a big preview file', async function () { |
208 | const fields = baseCorrectParams | 208 | const fields = baseCorrectParams |
209 | const attaches = { | 209 | const attaches = { |
210 | previewfile: join(__dirname, '..', '..', 'fixtures', 'preview-big.png') | 210 | previewfile: buildAbsoluteFixturePath('preview-big.png') |
211 | } | 211 | } |
212 | 212 | ||
213 | await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches }) | 213 | await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches }) |
@@ -230,7 +230,7 @@ describe('Test video lives API validator', function () { | |||
230 | statusCodeExpected: HttpStatusCode.OK_200 | 230 | statusCodeExpected: HttpStatusCode.OK_200 |
231 | }) | 231 | }) |
232 | 232 | ||
233 | videoId = res.body.video.id | 233 | video = res.body.video |
234 | }) | 234 | }) |
235 | 235 | ||
236 | it('Should forbid if live is disabled', async function () { | 236 | it('Should forbid if live is disabled', async function () { |
@@ -326,15 +326,15 @@ describe('Test video lives API validator', function () { | |||
326 | describe('When getting live information', function () { | 326 | describe('When getting live information', function () { |
327 | 327 | ||
328 | it('Should fail without access token', async function () { | 328 | it('Should fail without access token', async function () { |
329 | await getLive(server.url, '', videoId, HttpStatusCode.UNAUTHORIZED_401) | 329 | await getLive(server.url, '', video.id, HttpStatusCode.UNAUTHORIZED_401) |
330 | }) | 330 | }) |
331 | 331 | ||
332 | it('Should fail with a bad access token', async function () { | 332 | it('Should fail with a bad access token', async function () { |
333 | await getLive(server.url, 'toto', videoId, HttpStatusCode.UNAUTHORIZED_401) | 333 | await getLive(server.url, 'toto', video.id, HttpStatusCode.UNAUTHORIZED_401) |
334 | }) | 334 | }) |
335 | 335 | ||
336 | it('Should fail with access token of another user', async function () { | 336 | it('Should fail with access token of another user', async function () { |
337 | await getLive(server.url, userAccessToken, videoId, HttpStatusCode.FORBIDDEN_403) | 337 | await getLive(server.url, userAccessToken, video.id, HttpStatusCode.FORBIDDEN_403) |
338 | }) | 338 | }) |
339 | 339 | ||
340 | it('Should fail with a bad video id', async function () { | 340 | it('Should fail with a bad video id', async function () { |
@@ -350,22 +350,23 @@ describe('Test video lives API validator', function () { | |||
350 | }) | 350 | }) |
351 | 351 | ||
352 | it('Should succeed with the correct params', async function () { | 352 | it('Should succeed with the correct params', async function () { |
353 | await getLive(server.url, server.accessToken, videoId) | 353 | await getLive(server.url, server.accessToken, video.id) |
354 | await getLive(server.url, server.accessToken, video.shortUUID) | ||
354 | }) | 355 | }) |
355 | }) | 356 | }) |
356 | 357 | ||
357 | describe('When updating live information', async function () { | 358 | describe('When updating live information', async function () { |
358 | 359 | ||
359 | it('Should fail without access token', async function () { | 360 | it('Should fail without access token', async function () { |
360 | await updateLive(server.url, '', videoId, {}, HttpStatusCode.UNAUTHORIZED_401) | 361 | await updateLive(server.url, '', video.id, {}, HttpStatusCode.UNAUTHORIZED_401) |
361 | }) | 362 | }) |
362 | 363 | ||
363 | it('Should fail with a bad access token', async function () { | 364 | it('Should fail with a bad access token', async function () { |
364 | await updateLive(server.url, 'toto', videoId, {}, HttpStatusCode.UNAUTHORIZED_401) | 365 | await updateLive(server.url, 'toto', video.id, {}, HttpStatusCode.UNAUTHORIZED_401) |
365 | }) | 366 | }) |
366 | 367 | ||
367 | it('Should fail with access token of another user', async function () { | 368 | it('Should fail with access token of another user', async function () { |
368 | await updateLive(server.url, userAccessToken, videoId, {}, HttpStatusCode.FORBIDDEN_403) | 369 | await updateLive(server.url, userAccessToken, video.id, {}, HttpStatusCode.FORBIDDEN_403) |
369 | }) | 370 | }) |
370 | 371 | ||
371 | it('Should fail with a bad video id', async function () { | 372 | it('Should fail with a bad video id', async function () { |
@@ -383,11 +384,12 @@ describe('Test video lives API validator', function () { | |||
383 | it('Should fail with save replay and permanent live set to true', async function () { | 384 | it('Should fail with save replay and permanent live set to true', async function () { |
384 | const fields = { saveReplay: true, permanentLive: true } | 385 | const fields = { saveReplay: true, permanentLive: true } |
385 | 386 | ||
386 | await updateLive(server.url, server.accessToken, videoId, fields, HttpStatusCode.BAD_REQUEST_400) | 387 | await updateLive(server.url, server.accessToken, video.id, fields, HttpStatusCode.BAD_REQUEST_400) |
387 | }) | 388 | }) |
388 | 389 | ||
389 | it('Should succeed with the correct params', async function () { | 390 | it('Should succeed with the correct params', async function () { |
390 | await updateLive(server.url, server.accessToken, videoId, { saveReplay: false }) | 391 | await updateLive(server.url, server.accessToken, video.id, { saveReplay: false }) |
392 | await updateLive(server.url, server.accessToken, video.shortUUID, { saveReplay: false }) | ||
391 | }) | 393 | }) |
392 | 394 | ||
393 | it('Should fail to update replay status if replay is not allowed on the instance', async function () { | 395 | it('Should fail to update replay status if replay is not allowed on the instance', async function () { |
@@ -398,19 +400,19 @@ describe('Test video lives API validator', function () { | |||
398 | } | 400 | } |
399 | }) | 401 | }) |
400 | 402 | ||
401 | await updateLive(server.url, server.accessToken, videoId, { saveReplay: true }, HttpStatusCode.FORBIDDEN_403) | 403 | await updateLive(server.url, server.accessToken, video.id, { saveReplay: true }, HttpStatusCode.FORBIDDEN_403) |
402 | }) | 404 | }) |
403 | 405 | ||
404 | it('Should fail to update a live if it has already started', async function () { | 406 | it('Should fail to update a live if it has already started', async function () { |
405 | this.timeout(40000) | 407 | this.timeout(40000) |
406 | 408 | ||
407 | const resLive = await getLive(server.url, server.accessToken, videoId) | 409 | const resLive = await getLive(server.url, server.accessToken, video.id) |
408 | const live: LiveVideo = resLive.body | 410 | const live: LiveVideo = resLive.body |
409 | 411 | ||
410 | const command = sendRTMPStream(live.rtmpUrl, live.streamKey) | 412 | const command = sendRTMPStream(live.rtmpUrl, live.streamKey) |
411 | 413 | ||
412 | await waitUntilLivePublished(server.url, server.accessToken, videoId) | 414 | await waitUntilLivePublished(server.url, server.accessToken, video.id) |
413 | await updateLive(server.url, server.accessToken, videoId, {}, HttpStatusCode.BAD_REQUEST_400) | 415 | await updateLive(server.url, server.accessToken, video.id, {}, HttpStatusCode.BAD_REQUEST_400) |
414 | 416 | ||
415 | await stopFfmpeg(command) | 417 | await stopFfmpeg(command) |
416 | }) | 418 | }) |
@@ -418,14 +420,14 @@ describe('Test video lives API validator', function () { | |||
418 | it('Should fail to stream twice in the save live', async function () { | 420 | it('Should fail to stream twice in the save live', async function () { |
419 | this.timeout(40000) | 421 | this.timeout(40000) |
420 | 422 | ||
421 | const resLive = await getLive(server.url, server.accessToken, videoId) | 423 | const resLive = await getLive(server.url, server.accessToken, video.id) |
422 | const live: LiveVideo = resLive.body | 424 | const live: LiveVideo = resLive.body |
423 | 425 | ||
424 | const command = sendRTMPStream(live.rtmpUrl, live.streamKey) | 426 | const command = sendRTMPStream(live.rtmpUrl, live.streamKey) |
425 | 427 | ||
426 | await waitUntilLivePublished(server.url, server.accessToken, videoId) | 428 | await waitUntilLivePublished(server.url, server.accessToken, video.id) |
427 | 429 | ||
428 | await runAndTestFfmpegStreamError(server.url, server.accessToken, videoId, true) | 430 | await runAndTestFfmpegStreamError(server.url, server.accessToken, video.id, true) |
429 | 431 | ||
430 | await stopFfmpeg(command) | 432 | await stopFfmpeg(command) |
431 | }) | 433 | }) |