From d4a8e7a65f97bb3257facc13e1ae8ffdbad61ddb Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 28 Jun 2021 17:30:59 +0200 Subject: Support short uuid for GET video/playlist --- server/tests/api/check-params/abuses.ts | 2 +- server/tests/api/check-params/live.ts | 40 ++++++++------- server/tests/api/check-params/redundancy.ts | 38 ++++++++++---- server/tests/api/check-params/users.ts | 12 +++-- server/tests/api/check-params/video-blacklist.ts | 12 +++-- server/tests/api/check-params/video-captions.ts | 38 +++++++------- server/tests/api/check-params/video-comments.ts | 31 ++++++------ server/tests/api/check-params/video-playlists.ts | 64 ++++++++++++------------ server/tests/api/check-params/videos.ts | 52 +++++++++---------- 9 files changed, 158 insertions(+), 131 deletions(-) (limited to 'server/tests/api/check-params') diff --git a/server/tests/api/check-params/abuses.ts b/server/tests/api/check-params/abuses.ts index 2aa09334c..2054776cc 100644 --- a/server/tests/api/check-params/abuses.ts +++ b/server/tests/api/check-params/abuses.ts @@ -258,7 +258,7 @@ describe('Test abuses API validators', function () { }) it('Should succeed with the correct parameters (basic)', async function () { - const fields: AbuseCreate = { video: { id: server.video.id }, reason: 'my super reason' } + const fields: AbuseCreate = { video: { id: server.video.shortUUID }, reason: 'my super reason' } const res = await makePostBodyRequest({ url: server.url, diff --git a/server/tests/api/check-params/live.ts b/server/tests/api/check-params/live.ts index 32233c9da..933d8abf2 100644 --- a/server/tests/api/check-params/live.ts +++ b/server/tests/api/check-params/live.ts @@ -2,7 +2,7 @@ import 'mocha' import { omit } from 'lodash' -import { LiveVideo, VideoPrivacy } from '@shared/models' +import { LiveVideo, VideoCreateResult, VideoPrivacy } from '@shared/models' import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' import { buildAbsoluteFixturePath, @@ -31,7 +31,7 @@ describe('Test video lives API validator', function () { let server: ServerInfo let userAccessToken = '' let channelId: number - let videoId: number + let video: VideoCreateResult let videoIdNotLive: number // --------------------------------------------------------------- @@ -230,7 +230,7 @@ describe('Test video lives API validator', function () { statusCodeExpected: HttpStatusCode.OK_200 }) - videoId = res.body.video.id + video = res.body.video }) it('Should forbid if live is disabled', async function () { @@ -326,15 +326,15 @@ describe('Test video lives API validator', function () { describe('When getting live information', function () { it('Should fail without access token', async function () { - await getLive(server.url, '', videoId, HttpStatusCode.UNAUTHORIZED_401) + await getLive(server.url, '', video.id, HttpStatusCode.UNAUTHORIZED_401) }) it('Should fail with a bad access token', async function () { - await getLive(server.url, 'toto', videoId, HttpStatusCode.UNAUTHORIZED_401) + await getLive(server.url, 'toto', video.id, HttpStatusCode.UNAUTHORIZED_401) }) it('Should fail with access token of another user', async function () { - await getLive(server.url, userAccessToken, videoId, HttpStatusCode.FORBIDDEN_403) + await getLive(server.url, userAccessToken, video.id, HttpStatusCode.FORBIDDEN_403) }) it('Should fail with a bad video id', async function () { @@ -350,22 +350,23 @@ describe('Test video lives API validator', function () { }) it('Should succeed with the correct params', async function () { - await getLive(server.url, server.accessToken, videoId) + await getLive(server.url, server.accessToken, video.id) + await getLive(server.url, server.accessToken, video.shortUUID) }) }) describe('When updating live information', async function () { it('Should fail without access token', async function () { - await updateLive(server.url, '', videoId, {}, HttpStatusCode.UNAUTHORIZED_401) + await updateLive(server.url, '', video.id, {}, HttpStatusCode.UNAUTHORIZED_401) }) it('Should fail with a bad access token', async function () { - await updateLive(server.url, 'toto', videoId, {}, HttpStatusCode.UNAUTHORIZED_401) + await updateLive(server.url, 'toto', video.id, {}, HttpStatusCode.UNAUTHORIZED_401) }) it('Should fail with access token of another user', async function () { - await updateLive(server.url, userAccessToken, videoId, {}, HttpStatusCode.FORBIDDEN_403) + await updateLive(server.url, userAccessToken, video.id, {}, HttpStatusCode.FORBIDDEN_403) }) it('Should fail with a bad video id', async function () { @@ -383,11 +384,12 @@ describe('Test video lives API validator', function () { it('Should fail with save replay and permanent live set to true', async function () { const fields = { saveReplay: true, permanentLive: true } - await updateLive(server.url, server.accessToken, videoId, fields, HttpStatusCode.BAD_REQUEST_400) + await updateLive(server.url, server.accessToken, video.id, fields, HttpStatusCode.BAD_REQUEST_400) }) it('Should succeed with the correct params', async function () { - await updateLive(server.url, server.accessToken, videoId, { saveReplay: false }) + await updateLive(server.url, server.accessToken, video.id, { saveReplay: false }) + await updateLive(server.url, server.accessToken, video.shortUUID, { saveReplay: false }) }) 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 () { } }) - await updateLive(server.url, server.accessToken, videoId, { saveReplay: true }, HttpStatusCode.FORBIDDEN_403) + await updateLive(server.url, server.accessToken, video.id, { saveReplay: true }, HttpStatusCode.FORBIDDEN_403) }) it('Should fail to update a live if it has already started', async function () { this.timeout(40000) - const resLive = await getLive(server.url, server.accessToken, videoId) + const resLive = await getLive(server.url, server.accessToken, video.id) const live: LiveVideo = resLive.body const command = sendRTMPStream(live.rtmpUrl, live.streamKey) - await waitUntilLivePublished(server.url, server.accessToken, videoId) - await updateLive(server.url, server.accessToken, videoId, {}, HttpStatusCode.BAD_REQUEST_400) + await waitUntilLivePublished(server.url, server.accessToken, video.id) + await updateLive(server.url, server.accessToken, video.id, {}, HttpStatusCode.BAD_REQUEST_400) await stopFfmpeg(command) }) @@ -418,14 +420,14 @@ describe('Test video lives API validator', function () { it('Should fail to stream twice in the save live', async function () { this.timeout(40000) - const resLive = await getLive(server.url, server.accessToken, videoId) + const resLive = await getLive(server.url, server.accessToken, video.id) const live: LiveVideo = resLive.body const command = sendRTMPStream(live.rtmpUrl, live.streamKey) - await waitUntilLivePublished(server.url, server.accessToken, videoId) + await waitUntilLivePublished(server.url, server.accessToken, video.id) - await runAndTestFfmpegStreamError(server.url, server.accessToken, videoId, true) + await runAndTestFfmpegStreamError(server.url, server.accessToken, video.id, true) await stopFfmpeg(command) }) diff --git a/server/tests/api/check-params/redundancy.ts b/server/tests/api/check-params/redundancy.ts index 71be50a6f..dac6938de 100644 --- a/server/tests/api/check-params/redundancy.ts +++ b/server/tests/api/check-params/redundancy.ts @@ -1,7 +1,8 @@ /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ import 'mocha' - +import { VideoCreateResult } from '@shared/models' +import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' import { checkBadCountPagination, checkBadSortPagination, @@ -9,20 +10,24 @@ import { cleanupTests, createUser, doubleFollow, - flushAndRunMultipleServers, makeDeleteRequest, - makeGetRequest, makePostBodyRequest, + flushAndRunMultipleServers, + getVideo, + makeDeleteRequest, + makeGetRequest, + makePostBodyRequest, makePutBodyRequest, ServerInfo, - setAccessTokensToServers, uploadVideoAndGetId, - userLogin, waitJobs, getVideoIdFromUUID + setAccessTokensToServers, + uploadVideoAndGetId, + userLogin, + waitJobs } from '../../../../shared/extra-utils' -import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' describe('Test server redundancy API validators', function () { let servers: ServerInfo[] let userAccessToken = null let videoIdLocal: number - let videoIdRemote: number + let videoRemote: VideoCreateResult // --------------------------------------------------------------- @@ -48,7 +53,8 @@ describe('Test server redundancy API validators', function () { await waitJobs(servers) - videoIdRemote = await getVideoIdFromUUID(servers[0].url, remoteUUID) + const resVideo = await getVideo(servers[0].url, remoteUUID) + videoRemote = resVideo.body }) describe('When listing redundancies', function () { @@ -131,7 +137,13 @@ describe('Test server redundancy API validators', function () { }) it('Should succeed with the correct params', async function () { - await makePostBodyRequest({ url, path, token, fields: { videoId: videoIdRemote }, statusCodeExpected: HttpStatusCode.NO_CONTENT_204 }) + await makePostBodyRequest({ + url, + path, + token, + fields: { videoId: videoRemote.shortUUID }, + statusCodeExpected: HttpStatusCode.NO_CONTENT_204 + }) }) it('Should fail if the video is already duplicated', async function () { @@ -139,7 +151,13 @@ describe('Test server redundancy API validators', function () { await waitJobs(servers) - await makePostBodyRequest({ url, path, token, fields: { videoId: videoIdRemote }, statusCodeExpected: HttpStatusCode.CONFLICT_409 }) + await makePostBodyRequest({ + url, + path, + token, + fields: { videoId: videoRemote.uuid }, + statusCodeExpected: HttpStatusCode.CONFLICT_409 + }) }) }) diff --git a/server/tests/api/check-params/users.ts b/server/tests/api/check-params/users.ts index 36482ee17..70a872ce5 100644 --- a/server/tests/api/check-params/users.ts +++ b/server/tests/api/check-params/users.ts @@ -2,7 +2,7 @@ import 'mocha' import { omit } from 'lodash' -import { User, UserRole } from '../../../../shared' +import { User, UserRole, VideoCreateResult } from '../../../../shared' import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' import { addVideoChannel, @@ -45,7 +45,7 @@ describe('Test users API validators', function () { let userId: number let rootId: number let moderatorId: number - let videoId: number + let video: VideoCreateResult let server: ServerInfo let serverWithRegistrationDisabled: ServerInfo let userAccessToken = '' @@ -126,7 +126,7 @@ describe('Test users API validators', function () { { const res = await uploadVideo(server.url, server.accessToken, {}) - videoId = res.body.video.id + video = res.body.video } { @@ -829,7 +829,7 @@ describe('Test users API validators', function () { describe('When getting my video rating', function () { it('Should fail with a non authenticated user', async function () { - await getMyUserVideoRating(server.url, 'fake_token', videoId, HttpStatusCode.UNAUTHORIZED_401) + await getMyUserVideoRating(server.url, 'fake_token', video.id, HttpStatusCode.UNAUTHORIZED_401) }) it('Should fail with an incorrect video uuid', async function () { @@ -841,7 +841,9 @@ describe('Test users API validators', function () { }) it('Should succeed with the correct parameters', async function () { - await getMyUserVideoRating(server.url, server.accessToken, videoId) + await getMyUserVideoRating(server.url, server.accessToken, video.id) + await getMyUserVideoRating(server.url, server.accessToken, video.uuid) + await getMyUserVideoRating(server.url, server.accessToken, video.shortUUID) }) }) diff --git a/server/tests/api/check-params/video-blacklist.ts b/server/tests/api/check-params/video-blacklist.ts index 3d4837d58..ce7f5fa17 100644 --- a/server/tests/api/check-params/video-blacklist.ts +++ b/server/tests/api/check-params/video-blacklist.ts @@ -191,7 +191,7 @@ describe('Test video blacklist API validators', function () { }) it('Should succeed with the correct params', async function () { - const path = basePath + servers[0].video.uuid + '/blacklist' + const path = basePath + servers[0].video.shortUUID + '/blacklist' const fields = { reason: 'hello' } await makePutBodyRequest({ @@ -222,10 +222,14 @@ describe('Test video blacklist API validators', function () { }) it('Should succeed with an admin', async function () { - const res = await getVideoWithToken(servers[0].url, servers[0].accessToken, servers[0].video.uuid, HttpStatusCode.OK_200) - const video: VideoDetails = res.body + const video = servers[0].video - expect(video.blacklisted).to.be.true + for (const id of [ video.id, video.uuid, video.shortUUID ]) { + const res = await getVideoWithToken(servers[0].url, servers[0].accessToken, id, HttpStatusCode.OK_200) + const video: VideoDetails = res.body + + expect(video.blacklisted).to.be.true + } }) }) diff --git a/server/tests/api/check-params/video-captions.ts b/server/tests/api/check-params/video-captions.ts index 1ce2202d2..c0595c04d 100644 --- a/server/tests/api/check-params/video-captions.ts +++ b/server/tests/api/check-params/video-captions.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ import 'mocha' - +import { VideoCreateResult } from '@shared/models' import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' import { buildAbsoluteFixturePath, @@ -23,7 +23,7 @@ describe('Test video captions API validator', function () { let server: ServerInfo let userAccessToken: string - let videoUUID: string + let video: VideoCreateResult // --------------------------------------------------------------- @@ -36,7 +36,7 @@ describe('Test video captions API validator', function () { { const res = await uploadVideo(server.url, server.accessToken, {}) - videoUUID = res.body.video.uuid + video = res.body.video } { @@ -79,7 +79,7 @@ describe('Test video captions API validator', function () { }) it('Should fail with a missing language in path', async function () { - const captionPath = path + videoUUID + '/captions' + const captionPath = path + video.uuid + '/captions' await makeUploadRequest({ method: 'PUT', url: server.url, @@ -91,7 +91,7 @@ describe('Test video captions API validator', function () { }) it('Should fail with an unknown language', async function () { - const captionPath = path + videoUUID + '/captions/15' + const captionPath = path + video.uuid + '/captions/15' await makeUploadRequest({ method: 'PUT', url: server.url, @@ -103,7 +103,7 @@ describe('Test video captions API validator', function () { }) it('Should fail without access token', async function () { - const captionPath = path + videoUUID + '/captions/fr' + const captionPath = path + video.uuid + '/captions/fr' await makeUploadRequest({ method: 'PUT', url: server.url, @@ -115,7 +115,7 @@ describe('Test video captions API validator', function () { }) it('Should fail with a bad access token', async function () { - const captionPath = path + videoUUID + '/captions/fr' + const captionPath = path + video.uuid + '/captions/fr' await makeUploadRequest({ method: 'PUT', url: server.url, @@ -133,7 +133,7 @@ describe('Test video captions API validator', function () { // 'captionfile': buildAbsoluteFixturePath('subtitle-bad.txt') // } // - // const captionPath = path + videoUUID + '/captions/fr' + // const captionPath = path + video.uuid + '/captions/fr' // await makeUploadRequest({ // method: 'PUT', // url: server.url, @@ -151,7 +151,7 @@ describe('Test video captions API validator', function () { // url: server.url, // accessToken: server.accessToken, // language: 'zh', - // videoId: videoUUID, + // videoId: video.uuid, // fixture: 'subtitle-bad.txt', // mimeType: 'application/octet-stream', // statusCodeExpected: HttpStatusCode.BAD_REQUEST_400 @@ -163,7 +163,7 @@ describe('Test video captions API validator', function () { url: server.url, accessToken: server.accessToken, language: 'zh', - videoId: videoUUID, + videoId: video.uuid, fixture: 'subtitle-good.srt', mimeType: 'application/octet-stream' }) @@ -175,7 +175,7 @@ describe('Test video captions API validator', function () { // 'captionfile': buildAbsoluteFixturePath('subtitle-bad.srt') // } // - // const captionPath = path + videoUUID + '/captions/fr' + // const captionPath = path + video.uuid + '/captions/fr' // await makeUploadRequest({ // method: 'PUT', // url: server.url, @@ -188,7 +188,7 @@ describe('Test video captions API validator', function () { // }) it('Should success with the correct parameters', async function () { - const captionPath = path + videoUUID + '/captions/fr' + const captionPath = path + video.uuid + '/captions/fr' await makeUploadRequest({ method: 'PUT', url: server.url, @@ -215,7 +215,7 @@ describe('Test video captions API validator', function () { }) it('Should success with the correct parameters', async function () { - await makeGetRequest({ url: server.url, path: path + videoUUID + '/captions', statusCodeExpected: HttpStatusCode.OK_200 }) + await makeGetRequest({ url: server.url, path: path + video.shortUUID + '/captions', statusCodeExpected: HttpStatusCode.OK_200 }) }) }) @@ -246,27 +246,27 @@ describe('Test video captions API validator', function () { }) it('Should fail with a missing language', async function () { - const captionPath = path + videoUUID + '/captions' + const captionPath = path + video.shortUUID + '/captions' await makeDeleteRequest({ url: server.url, path: captionPath, token: server.accessToken }) }) it('Should fail with an unknown language', async function () { - const captionPath = path + videoUUID + '/captions/15' + const captionPath = path + video.shortUUID + '/captions/15' await makeDeleteRequest({ url: server.url, path: captionPath, token: server.accessToken }) }) it('Should fail without access token', async function () { - const captionPath = path + videoUUID + '/captions/fr' + const captionPath = path + video.shortUUID + '/captions/fr' await makeDeleteRequest({ url: server.url, path: captionPath, statusCodeExpected: HttpStatusCode.UNAUTHORIZED_401 }) }) it('Should fail with a bad access token', async function () { - const captionPath = path + videoUUID + '/captions/fr' + const captionPath = path + video.shortUUID + '/captions/fr' await makeDeleteRequest({ url: server.url, path: captionPath, token: 'coucou', statusCodeExpected: HttpStatusCode.UNAUTHORIZED_401 }) }) it('Should fail with another user', async function () { - const captionPath = path + videoUUID + '/captions/fr' + const captionPath = path + video.shortUUID + '/captions/fr' await makeDeleteRequest({ url: server.url, path: captionPath, @@ -276,7 +276,7 @@ describe('Test video captions API validator', function () { }) it('Should success with the correct parameters', async function () { - const captionPath = path + videoUUID + '/captions/fr' + const captionPath = path + video.shortUUID + '/captions/fr' await makeDeleteRequest({ url: server.url, path: captionPath, diff --git a/server/tests/api/check-params/video-comments.ts b/server/tests/api/check-params/video-comments.ts index 659a10c41..a38420851 100644 --- a/server/tests/api/check-params/video-comments.ts +++ b/server/tests/api/check-params/video-comments.ts @@ -1,7 +1,9 @@ /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ -import * as chai from 'chai' import 'mocha' +import * as chai from 'chai' +import { VideoCreateResult } from '@shared/models' +import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' import { cleanupTests, createUser, @@ -20,7 +22,6 @@ import { checkBadStartPagination } from '../../../../shared/extra-utils/requests/check-api-params' import { addVideoCommentThread } from '../../../../shared/extra-utils/videos/video-comments' -import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' const expect = chai.expect @@ -28,7 +29,7 @@ describe('Test video comments API validator', function () { let pathThread: string let pathComment: string let server: ServerInfo - let videoUUID: string + let video: VideoCreateResult let userAccessToken: string let userAccessToken2: string let commentId: number @@ -44,14 +45,14 @@ describe('Test video comments API validator', function () { { const res = await uploadVideo(server.url, server.accessToken, {}) - videoUUID = res.body.video.uuid - pathThread = '/api/v1/videos/' + videoUUID + '/comment-threads' + video = res.body.video + pathThread = '/api/v1/videos/' + video.uuid + '/comment-threads' } { - const res = await addVideoCommentThread(server.url, server.accessToken, videoUUID, 'coucou') + const res = await addVideoCommentThread(server.url, server.accessToken, video.uuid, 'coucou') commentId = res.body.comment.id - pathComment = '/api/v1/videos/' + videoUUID + '/comments/' + commentId + pathComment = '/api/v1/videos/' + video.uuid + '/comments/' + commentId } { @@ -101,7 +102,7 @@ describe('Test video comments API validator', function () { it('Should fail with an incorrect thread id', async function () { await makeGetRequest({ url: server.url, - path: '/api/v1/videos/' + videoUUID + '/comment-threads/156', + path: '/api/v1/videos/' + video.shortUUID + '/comment-threads/156', statusCodeExpected: HttpStatusCode.NOT_FOUND_404 }) }) @@ -109,7 +110,7 @@ describe('Test video comments API validator', function () { it('Should success with the correct params', async function () { await makeGetRequest({ url: server.url, - path: '/api/v1/videos/' + videoUUID + '/comment-threads/' + commentId, + path: '/api/v1/videos/' + video.shortUUID + '/comment-threads/' + commentId, statusCodeExpected: HttpStatusCode.OK_200 }) }) @@ -225,7 +226,7 @@ describe('Test video comments API validator', function () { }) it('Should fail with an incorrect comment', async function () { - const path = '/api/v1/videos/' + videoUUID + '/comments/124' + const path = '/api/v1/videos/' + video.uuid + '/comments/124' const fields = { text: 'super comment' } @@ -272,7 +273,7 @@ describe('Test video comments API validator', function () { }) it('Should fail with an incorrect comment', async function () { - const path = '/api/v1/videos/' + videoUUID + '/comments/124' + const path = '/api/v1/videos/' + video.uuid + '/comments/124' await makeDeleteRequest({ url: server.url, path, token: server.accessToken, statusCodeExpected: HttpStatusCode.NOT_FOUND_404 }) }) @@ -280,11 +281,11 @@ describe('Test video comments API validator', function () { let commentToDelete: number { - const res = await addVideoCommentThread(server.url, userAccessToken, videoUUID, 'hello') + const res = await addVideoCommentThread(server.url, userAccessToken, video.uuid, 'hello') commentToDelete = res.body.comment.id } - const path = '/api/v1/videos/' + videoUUID + '/comments/' + commentToDelete + const path = '/api/v1/videos/' + video.uuid + '/comments/' + commentToDelete await makeDeleteRequest({ url: server.url, path, token: userAccessToken2, statusCodeExpected: HttpStatusCode.FORBIDDEN_403 }) await makeDeleteRequest({ url: server.url, path, token: userAccessToken, statusCodeExpected: HttpStatusCode.NO_CONTENT_204 }) @@ -323,8 +324,8 @@ describe('Test video comments API validator', function () { describe('When a video has comments disabled', function () { before(async function () { const res = await uploadVideo(server.url, server.accessToken, { commentsEnabled: false }) - videoUUID = res.body.video.uuid - pathThread = '/api/v1/videos/' + videoUUID + '/comment-threads' + video = res.body.video + pathThread = '/api/v1/videos/' + video.uuid + '/comment-threads' }) it('Should return an empty thread list', async function () { diff --git a/server/tests/api/check-params/video-playlists.ts b/server/tests/api/check-params/video-playlists.ts index bbea88354..18253d11a 100644 --- a/server/tests/api/check-params/video-playlists.ts +++ b/server/tests/api/check-params/video-playlists.ts @@ -1,8 +1,13 @@ /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ import 'mocha' +import { VideoPlaylistCreateResult, VideoPlaylistPrivacy, VideoPlaylistType } from '@shared/models' +import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' import { addVideoInPlaylist, + checkBadCountPagination, + checkBadSortPagination, + checkBadStartPagination, cleanupTests, createVideoPlaylist, deleteVideoPlaylist, @@ -21,20 +26,14 @@ import { updateVideoPlaylistElement, uploadVideoAndGetId } from '../../../../shared/extra-utils' -import { - checkBadCountPagination, - checkBadSortPagination, - checkBadStartPagination -} from '../../../../shared/extra-utils/requests/check-api-params' -import { VideoPlaylistPrivacy } from '../../../../shared/models/videos/playlist/video-playlist-privacy.model' -import { VideoPlaylistType } from '../../../../shared/models/videos/playlist/video-playlist-type.model' -import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' describe('Test video playlists API validator', function () { let server: ServerInfo let userAccessToken: string - let playlistUUID: string + + let playlist: VideoPlaylistCreateResult let privatePlaylistUUID: string + let watchLaterPlaylistId: number let videoId: number let playlistElementId: number @@ -67,7 +66,7 @@ describe('Test video playlists API validator', function () { videoChannelId: server.videoChannel.id } }) - playlistUUID = res.body.videoPlaylist.uuid + playlist = res.body.videoPlaylist } { @@ -150,15 +149,15 @@ describe('Test video playlists API validator', function () { const path = '/api/v1/video-playlists/' it('Should fail with a bad start pagination', async function () { - await checkBadStartPagination(server.url, path + playlistUUID + '/videos', server.accessToken) + await checkBadStartPagination(server.url, path + playlist.shortUUID + '/videos', server.accessToken) }) it('Should fail with a bad count pagination', async function () { - await checkBadCountPagination(server.url, path + playlistUUID + '/videos', server.accessToken) + await checkBadCountPagination(server.url, path + playlist.shortUUID + '/videos', server.accessToken) }) it('Should success with the correct parameters', async function () { - await makeGetRequest({ url: server.url, path: path + playlistUUID + '/videos', statusCodeExpected: HttpStatusCode.OK_200 }) + await makeGetRequest({ url: server.url, path: path + playlist.shortUUID + '/videos', statusCodeExpected: HttpStatusCode.OK_200 }) }) }) @@ -177,6 +176,7 @@ describe('Test video playlists API validator', function () { token: server.accessToken, playlistAttrs: { displayName: 'super playlist', + videoChannelId: server.videoChannel.id, privacy: VideoPlaylistPrivacy.UNLISTED } }) @@ -187,7 +187,7 @@ describe('Test video playlists API validator', function () { }) it('Should succeed with the correct params', async function () { - await getVideoPlaylist(server.url, playlistUUID, HttpStatusCode.OK_200) + await getVideoPlaylist(server.url, playlist.uuid, HttpStatusCode.OK_200) }) }) @@ -213,7 +213,7 @@ describe('Test video playlists API validator', function () { const params = getBase({}, { token: null, expectedStatus: HttpStatusCode.UNAUTHORIZED_401 }) await createVideoPlaylist(params) - await updateVideoPlaylist(getUpdate(params, playlistUUID)) + await updateVideoPlaylist(getUpdate(params, playlist.shortUUID)) }) it('Should fail without displayName', async function () { @@ -226,42 +226,42 @@ describe('Test video playlists API validator', function () { const params = getBase({ displayName: 's'.repeat(300) }) await createVideoPlaylist(params) - await updateVideoPlaylist(getUpdate(params, playlistUUID)) + await updateVideoPlaylist(getUpdate(params, playlist.shortUUID)) }) it('Should fail with an incorrect description', async function () { const params = getBase({ description: 't' }) await createVideoPlaylist(params) - await updateVideoPlaylist(getUpdate(params, playlistUUID)) + await updateVideoPlaylist(getUpdate(params, playlist.shortUUID)) }) it('Should fail with an incorrect privacy', async function () { const params = getBase({ privacy: 45 }) await createVideoPlaylist(params) - await updateVideoPlaylist(getUpdate(params, playlistUUID)) + await updateVideoPlaylist(getUpdate(params, playlist.shortUUID)) }) it('Should fail with an unknown video channel id', async function () { const params = getBase({ videoChannelId: 42 }, { expectedStatus: HttpStatusCode.NOT_FOUND_404 }) await createVideoPlaylist(params) - await updateVideoPlaylist(getUpdate(params, playlistUUID)) + await updateVideoPlaylist(getUpdate(params, playlist.shortUUID)) }) it('Should fail with an incorrect thumbnail file', async function () { const params = getBase({ thumbnailfile: 'video_short.mp4' }) await createVideoPlaylist(params) - await updateVideoPlaylist(getUpdate(params, playlistUUID)) + await updateVideoPlaylist(getUpdate(params, playlist.shortUUID)) }) it('Should fail with a thumbnail file too big', async function () { const params = getBase({ thumbnailfile: 'preview-big.png' }) await createVideoPlaylist(params) - await updateVideoPlaylist(getUpdate(params, playlistUUID)) + await updateVideoPlaylist(getUpdate(params, playlist.shortUUID)) }) it('Should fail to set "public" a playlist not assigned to a channel', async function () { @@ -272,8 +272,8 @@ describe('Test video playlists API validator', function () { await createVideoPlaylist(params) await createVideoPlaylist(params2) await updateVideoPlaylist(getUpdate(params, privatePlaylistUUID)) - await updateVideoPlaylist(getUpdate(params2, playlistUUID)) - await updateVideoPlaylist(getUpdate(params3, playlistUUID)) + await updateVideoPlaylist(getUpdate(params2, playlist.shortUUID)) + await updateVideoPlaylist(getUpdate(params3, playlist.shortUUID)) }) it('Should fail with an unknown playlist to update', async function () { @@ -286,7 +286,7 @@ describe('Test video playlists API validator', function () { it('Should fail to update a playlist of another user', async function () { await updateVideoPlaylist(getUpdate( getBase({}, { token: userAccessToken, expectedStatus: HttpStatusCode.FORBIDDEN_403 }), - playlistUUID + playlist.shortUUID )) }) @@ -305,7 +305,7 @@ describe('Test video playlists API validator', function () { { const params = getBase({}, { expectedStatus: HttpStatusCode.NO_CONTENT_204 }) - await updateVideoPlaylist(getUpdate(params, playlistUUID)) + await updateVideoPlaylist(getUpdate(params, playlist.shortUUID)) } }) }) @@ -316,7 +316,7 @@ describe('Test video playlists API validator', function () { expectedStatus: HttpStatusCode.BAD_REQUEST_400, url: server.url, token: server.accessToken, - playlistId: playlistUUID, + playlistId: playlist.id, elementAttrs: Object.assign({ videoId, startTimestamp: 2, @@ -381,7 +381,7 @@ describe('Test video playlists API validator', function () { stopTimestamp: 2 }, elementAttrs), playlistElementId, - playlistId: playlistUUID, + playlistId: playlist.id, expectedStatus: HttpStatusCode.BAD_REQUEST_400 }, wrapper) } @@ -451,7 +451,7 @@ describe('Test video playlists API validator', function () { return Object.assign({ url: server.url, token: server.accessToken, - playlistId: playlistUUID, + playlistId: playlist.shortUUID, elementAttrs: Object.assign({ startPosition: 1, insertAfterPosition: 2, @@ -469,7 +469,7 @@ describe('Test video playlists API validator', function () { await addVideoInPlaylist({ url: server.url, token: server.accessToken, - playlistId: playlistUUID, + playlistId: playlist.shortUUID, elementAttrs: { videoId: id } }) } @@ -606,7 +606,7 @@ describe('Test video playlists API validator', function () { url: server.url, token: server.accessToken, playlistElementId, - playlistId: playlistUUID, + playlistId: playlist.uuid, expectedStatus: HttpStatusCode.BAD_REQUEST_400 }, wrapper) } @@ -662,7 +662,7 @@ describe('Test video playlists API validator', function () { }) it('Should fail with a playlist of another user', async function () { - await deleteVideoPlaylist(server.url, userAccessToken, playlistUUID, HttpStatusCode.FORBIDDEN_403) + await deleteVideoPlaylist(server.url, userAccessToken, playlist.uuid, HttpStatusCode.FORBIDDEN_403) }) it('Should fail with the watch later playlist', async function () { @@ -670,7 +670,7 @@ describe('Test video playlists API validator', function () { }) it('Should succeed with the correct params', async function () { - await deleteVideoPlaylist(server.url, server.accessToken, playlistUUID) + await deleteVideoPlaylist(server.url, server.accessToken, playlist.uuid) }) }) diff --git a/server/tests/api/check-params/videos.ts b/server/tests/api/check-params/videos.ts index a6eecb13a..4d7a9a23b 100644 --- a/server/tests/api/check-params/videos.ts +++ b/server/tests/api/check-params/videos.ts @@ -5,7 +5,7 @@ import * as chai from 'chai' import { omit } from 'lodash' import { join } from 'path' import { randomInt } from '@shared/core-utils' -import { PeerTubeProblemDocument } from '@shared/models' +import { PeerTubeProblemDocument, VideoCreateResult } from '@shared/models' import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes' import { checkUploadVideoParam, @@ -42,7 +42,7 @@ describe('Test videos API validator', function () { let accountName: string let channelId: number let channelName: string - let videoId + let video: VideoCreateResult // --------------------------------------------------------------- @@ -490,7 +490,7 @@ describe('Test videos API validator', function () { before(async function () { const res = await getVideosList(server.url) - videoId = res.body.data[0].uuid + video = res.body.data[0] }) it('Should fail with nothing', async function () { @@ -518,79 +518,79 @@ describe('Test videos API validator', function () { it('Should fail with a long name', async function () { const fields = immutableAssign(baseCorrectParams, { name: 'super'.repeat(65) }) - await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields }) + await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) }) it('Should fail with a bad category', async function () { const fields = immutableAssign(baseCorrectParams, { category: 125 }) - await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields }) + await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) }) it('Should fail with a bad licence', async function () { const fields = immutableAssign(baseCorrectParams, { licence: 125 }) - await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields }) + await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) }) it('Should fail with a bad language', async function () { const fields = immutableAssign(baseCorrectParams, { language: 'a'.repeat(15) }) - await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields }) + await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) }) it('Should fail with a long description', async function () { const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(2500) }) - await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields }) + await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) }) it('Should fail with a long support text', async function () { const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) }) - await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields }) + await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) }) it('Should fail with a bad channel', async function () { const fields = immutableAssign(baseCorrectParams, { channelId: 545454 }) - await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields }) + await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) }) it('Should fail with too many tags', async function () { const fields = immutableAssign(baseCorrectParams, { tags: [ 'tag1', 'tag2', 'tag3', 'tag4', 'tag5', 'tag6' ] }) - await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields }) + await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) }) it('Should fail with a tag length too low', async function () { const fields = immutableAssign(baseCorrectParams, { tags: [ 'tag1', 't' ] }) - await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields }) + await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) }) it('Should fail with a tag length too big', async function () { const fields = immutableAssign(baseCorrectParams, { tags: [ 'tag1', 'my_super_tag_too_long_long_long_long_long_long' ] }) - await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields }) + await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) }) it('Should fail with a bad schedule update (miss updateAt)', async function () { const fields = immutableAssign(baseCorrectParams, { scheduleUpdate: { privacy: VideoPrivacy.PUBLIC } }) - await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields }) + await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) }) it('Should fail with a bad schedule update (wrong updateAt)', async function () { const fields = immutableAssign(baseCorrectParams, { scheduleUpdate: { updateAt: 'toto', privacy: VideoPrivacy.PUBLIC } }) - await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields }) + await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) }) it('Should fail with a bad originally published at param', async function () { const fields = immutableAssign(baseCorrectParams, { originallyPublishedAt: 'toto' }) - await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields }) + await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) }) it('Should fail with an incorrect thumbnail file', async function () { @@ -602,7 +602,7 @@ describe('Test videos API validator', function () { await makeUploadRequest({ url: server.url, method: 'PUT', - path: path + videoId, + path: path + video.shortUUID, token: server.accessToken, fields, attaches @@ -618,7 +618,7 @@ describe('Test videos API validator', function () { await makeUploadRequest({ url: server.url, method: 'PUT', - path: path + videoId, + path: path + video.shortUUID, token: server.accessToken, fields, attaches @@ -634,7 +634,7 @@ describe('Test videos API validator', function () { await makeUploadRequest({ url: server.url, method: 'PUT', - path: path + videoId, + path: path + video.shortUUID, token: server.accessToken, fields, attaches @@ -650,7 +650,7 @@ describe('Test videos API validator', function () { await makeUploadRequest({ url: server.url, method: 'PUT', - path: path + videoId, + path: path + video.shortUUID, token: server.accessToken, fields, attaches @@ -662,7 +662,7 @@ describe('Test videos API validator', function () { await makePutBodyRequest({ url: server.url, - path: path + videoId, + path: path + video.shortUUID, token: userAccessToken, fields, statusCodeExpected: HttpStatusCode.FORBIDDEN_403 @@ -674,7 +674,7 @@ describe('Test videos API validator', function () { it('Shoud report the appropriate error', async function () { const fields = immutableAssign(baseCorrectParams, { licence: 125 }) - const res = await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields }) + const res = await makePutBodyRequest({ url: server.url, path: path + video.shortUUID, token: server.accessToken, fields }) const error = res.body as PeerTubeProblemDocument expect(error.docs).to.equal('https://docs.joinpeertube.org/api-rest-reference.html#operation/putVideo') @@ -694,7 +694,7 @@ describe('Test videos API validator', function () { await makePutBodyRequest({ url: server.url, - path: path + videoId, + path: path + video.shortUUID, token: server.accessToken, fields, statusCodeExpected: HttpStatusCode.NO_CONTENT_204 @@ -739,7 +739,7 @@ describe('Test videos API validator', function () { }) it('Should succeed with the correct parameters', async function () { - await getVideo(server.url, videoId) + await getVideo(server.url, video.shortUUID) }) }) @@ -810,7 +810,7 @@ describe('Test videos API validator', function () { }) it('Should fail with a video of another user without the appropriate right', async function () { - await removeVideo(server.url, userAccessToken, videoId, HttpStatusCode.FORBIDDEN_403) + await removeVideo(server.url, userAccessToken, video.uuid, HttpStatusCode.FORBIDDEN_403) }) it('Should fail with a video of another server') @@ -832,7 +832,7 @@ describe('Test videos API validator', function () { }) it('Should succeed with the correct parameters', async function () { - await removeVideo(server.url, server.accessToken, videoId) + await removeVideo(server.url, server.accessToken, video.uuid) }) }) -- cgit v1.2.3