X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftests%2Fapi%2Fcheck-params%2Fchannel-import-videos.ts;h=2de13b629d243aa331af15ed767380195342be53;hb=1cddb979ac5ca92aa7defe75583755f4043d1338;hp=90d61f20ab92188fc21660963569063019e874e6;hpb=a3b472a12ec6e57dbe2f650419f8064864686eab;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tests/api/check-params/channel-import-videos.ts b/server/tests/api/check-params/channel-import-videos.ts index 90d61f20a..2de13b629 100644 --- a/server/tests/api/check-params/channel-import-videos.ts +++ b/server/tests/api/check-params/channel-import-videos.ts @@ -1,30 +1,42 @@ /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ -import 'mocha' import { FIXTURE_URLS } from '@server/tests/shared' import { areHttpImportTestsDisabled } from '@shared/core-utils' import { HttpStatusCode } from '@shared/models' -import { ChannelsCommand, cleanupTests, createSingleServer, PeerTubeServer, setAccessTokensToServers } from '@shared/server-commands' +import { + ChannelsCommand, + cleanupTests, + createSingleServer, + PeerTubeServer, + setAccessTokensToServers, + setDefaultVideoChannel +} from '@shared/server-commands' describe('Test videos import in a channel API validator', function () { let server: PeerTubeServer const userInfo = { accessToken: '', channelName: 'fake_channel', + channelId: -1, id: -1, videoQuota: -1, - videoQuotaDaily: -1 + videoQuotaDaily: -1, + channelSyncId: -1 } let command: ChannelsCommand // --------------------------------------------------------------- before(async function () { - this.timeout(30000) + this.timeout(120000) server = await createSingleServer(1) await setAccessTokensToServers([ server ]) + await setDefaultVideoChannel([ server ]) + + await server.config.enableImports() + await server.config.enableChannelSync() const userCreds = { username: 'fake', @@ -35,16 +47,31 @@ describe('Test videos import in a channel API validator', function () { const user = await server.users.create({ username: userCreds.username, password: userCreds.password }) userInfo.id = user.id userInfo.accessToken = await server.login.getAccessToken(userCreds) + + const info = await server.users.getMyInfo({ token: userInfo.accessToken }) + userInfo.channelId = info.videoChannels[0].id + } + + { + const { videoChannelSync } = await server.channelSyncs.create({ + token: userInfo.accessToken, + attributes: { + externalChannelUrl: FIXTURE_URLS.youtubeChannel, + videoChannelId: userInfo.channelId + } + }) + userInfo.channelSyncId = videoChannelSync.id } command = server.channels }) it('Should fail when HTTP upload is disabled', async function () { + await server.config.disableChannelSync() await server.config.disableImports() await command.importVideos({ - channelName: 'super_channel', + channelName: server.store.channel.name, externalChannelUrl: FIXTURE_URLS.youtubeChannel, token: server.accessToken, expectedStatus: HttpStatusCode.FORBIDDEN_403 @@ -55,7 +82,7 @@ describe('Test videos import in a channel API validator', function () { it('Should fail when externalChannelUrl is not provided', async function () { await command.importVideos({ - channelName: 'super_channel', + channelName: server.store.channel.name, externalChannelUrl: null, token: server.accessToken, expectedStatus: HttpStatusCode.BAD_REQUEST_400 @@ -64,7 +91,7 @@ describe('Test videos import in a channel API validator', function () { it('Should fail when externalChannelUrl is malformed', async function () { await command.importVideos({ - channelName: 'super_channel', + channelName: server.store.channel.name, externalChannelUrl: 'not-a-url', token: server.accessToken, expectedStatus: HttpStatusCode.BAD_REQUEST_400 @@ -73,7 +100,7 @@ describe('Test videos import in a channel API validator', function () { it('Should fail with a bad sync id', async function () { await command.importVideos({ - channelName: 'super_channel', + channelName: server.store.channel.name, externalChannelUrl: FIXTURE_URLS.youtubeChannel, videoChannelSyncId: 'toto' as any, token: server.accessToken, @@ -83,7 +110,7 @@ describe('Test videos import in a channel API validator', function () { it('Should fail with a unknown sync id', async function () { await command.importVideos({ - channelName: 'super_channel', + channelName: server.store.channel.name, externalChannelUrl: FIXTURE_URLS.youtubeChannel, videoChannelSyncId: 42, token: server.accessToken, @@ -91,9 +118,19 @@ describe('Test videos import in a channel API validator', function () { }) }) + it('Should fail with a sync id of another channel', async function () { + await command.importVideos({ + channelName: server.store.channel.name, + externalChannelUrl: FIXTURE_URLS.youtubeChannel, + videoChannelSyncId: userInfo.channelSyncId, + token: server.accessToken, + expectedStatus: HttpStatusCode.FORBIDDEN_403 + }) + }) + it('Should fail with no authentication', async function () { await command.importVideos({ - channelName: 'super_channel', + channelName: server.store.channel.name, externalChannelUrl: FIXTURE_URLS.youtubeChannel, token: null, expectedStatus: HttpStatusCode.UNAUTHORIZED_401 @@ -102,7 +139,7 @@ describe('Test videos import in a channel API validator', function () { it('Should fail when sync is not owned by the user', async function () { await command.importVideos({ - channelName: 'super_channel', + channelName: server.store.channel.name, externalChannelUrl: FIXTURE_URLS.youtubeChannel, token: userInfo.accessToken, expectedStatus: HttpStatusCode.FORBIDDEN_403