/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
-import 'mocha'
-import * as chai from 'chai'
-import { omit } from 'lodash'
-import { checkBadCountPagination, checkBadSortPagination, checkBadStartPagination, FIXTURE_URLS } from '@server/tests/shared'
-import { areHttpImportTestsDisabled, buildAbsoluteFixturePath } from '@shared/core-utils'
+import { expect } from 'chai'
+import { checkBadCountPagination, checkBadSortPagination, checkBadStartPagination } from '@server/tests/shared'
+import { buildAbsoluteFixturePath, omit } from '@shared/core-utils'
import { HttpStatusCode, VideoChannelUpdate } from '@shared/models'
import {
ChannelsCommand,
setAccessTokensToServers
} from '@shared/server-commands'
-const expect = chai.expect
-
describe('Test video channels API validator', function () {
const videoChannelPath = '/api/v1/video-channels'
let server: PeerTubeServer
})
it('Should fail without a name', async function () {
- const fields = omit(baseCorrectParams, 'name')
+ const fields = omit(baseCorrectParams, [ 'name' ])
await makePostBodyRequest({ url: server.url, path: videoChannelPath, token: server.accessToken, fields })
})
})
it('Should fail without a name', async function () {
- const fields = omit(baseCorrectParams, 'displayName')
+ const fields = omit(baseCorrectParams, [ 'displayName' ])
await makePostBodyRequest({ url: server.url, path: videoChannelPath, token: server.accessToken, fields })
})
})
})
- describe('When triggering full synchronization', function () {
-
- it('Should fail when HTTP upload is disabled', async function () {
- await server.config.disableImports()
-
- await command.importVideos({
- channelName: 'super_channel',
- externalChannelUrl: FIXTURE_URLS.youtubeChannel,
- token: server.accessToken,
- expectedStatus: HttpStatusCode.FORBIDDEN_403
- })
-
- await server.config.enableImports()
- })
-
- it('Should fail when externalChannelUrl is not provided', async function () {
- await command.importVideos({
- channelName: 'super_channel',
- externalChannelUrl: null,
- token: server.accessToken,
- expectedStatus: HttpStatusCode.BAD_REQUEST_400
- })
- })
-
- it('Should fail when externalChannelUrl is malformed', async function () {
- await command.importVideos({
- channelName: 'super_channel',
- externalChannelUrl: 'not-a-url',
- token: server.accessToken,
- expectedStatus: HttpStatusCode.BAD_REQUEST_400
- })
- })
-
- it('Should fail with no authentication', async function () {
- await command.importVideos({
- channelName: 'super_channel',
- externalChannelUrl: FIXTURE_URLS.youtubeChannel,
- token: null,
- expectedStatus: HttpStatusCode.UNAUTHORIZED_401
- })
- })
-
- it('Should fail when sync is not owned by the user', async function () {
- await command.importVideos({
- channelName: 'super_channel',
- externalChannelUrl: FIXTURE_URLS.youtubeChannel,
- token: userInfo.accessToken,
- expectedStatus: HttpStatusCode.FORBIDDEN_403
- })
- })
-
- it('Should fail when the user has no quota', async function () {
- await server.users.update({
- userId: userInfo.id,
- videoQuota: 0
- })
-
- await command.importVideos({
- channelName: 'fake_channel',
- externalChannelUrl: FIXTURE_URLS.youtubeChannel,
- token: userInfo.accessToken,
- expectedStatus: HttpStatusCode.PAYLOAD_TOO_LARGE_413
- })
-
- await server.users.update({
- userId: userInfo.id,
- videoQuota: userInfo.videoQuota
- })
- })
-
- it('Should fail when the user has no daily quota', async function () {
- await server.users.update({
- userId: userInfo.id,
- videoQuotaDaily: 0
- })
-
- await command.importVideos({
- channelName: 'fake_channel',
- externalChannelUrl: FIXTURE_URLS.youtubeChannel,
- token: userInfo.accessToken,
- expectedStatus: HttpStatusCode.PAYLOAD_TOO_LARGE_413
- })
-
- await server.users.update({
- userId: userInfo.id,
- videoQuotaDaily: userInfo.videoQuotaDaily
- })
- })
-
- it('Should succeed when sync is run by its owner', async function () {
- if (!areHttpImportTestsDisabled()) return
-
- await command.importVideos({
- channelName: 'fake_channel',
- externalChannelUrl: FIXTURE_URLS.youtubeChannel,
- token: userInfo.accessToken
- })
- })
-
- it('Should succeed when sync is run with root and for another user\'s channel', async function () {
- if (!areHttpImportTestsDisabled()) return
-
- await command.importVideos({
- channelName: 'fake_channel',
- externalChannelUrl: FIXTURE_URLS.youtubeChannel
- })
- })
- })
-
describe('When deleting a video channel', function () {
it('Should fail with a non authenticated user', async function () {
await command.delete({ token: 'coucou', channelName: 'super_channel', expectedStatus: HttpStatusCode.UNAUTHORIZED_401 })