+/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
+
import { expect } from 'chai'
import { FIXTURE_URLS } from '@server/tests/shared'
import { areHttpImportTestsDisabled } from '@shared/core-utils'
await server.config.enableChannelSync()
})
- it('Should import a whole channel', async function () {
+ it('Should import a whole channel without specifying the sync id', async function () {
this.timeout(240_000)
await server.channels.importVideos({ channelName: server.store.channel.name, externalChannelUrl: FIXTURE_URLS.youtubeChannel })
expect(videos.total).to.equal(2)
})
+ it('These imports should not have a sync id', async function () {
+ const { total, data } = await server.imports.getMyVideoImports()
+
+ expect(total).to.equal(2)
+ expect(data).to.have.lengthOf(2)
+
+ for (const videoImport of data) {
+ expect(videoImport.videoChannelSync).to.not.exist
+ }
+ })
+
+ it('Should import a whole channel and specifying the sync id', async function () {
+ this.timeout(240_000)
+
+ {
+ server.store.channel.name = 'channel2'
+ const { id } = await server.channels.create({ attributes: { name: server.store.channel.name } })
+ server.store.channel.id = id
+ }
+
+ {
+ const attributes = {
+ externalChannelUrl: FIXTURE_URLS.youtubeChannel,
+ videoChannelId: server.store.channel.id
+ }
+
+ const { videoChannelSync } = await server.channelSyncs.create({ attributes })
+ server.store.videoChannelSync = videoChannelSync
+
+ await waitJobs(server)
+ }
+
+ await server.channels.importVideos({
+ channelName: server.store.channel.name,
+ externalChannelUrl: FIXTURE_URLS.youtubeChannel,
+ videoChannelSyncId: server.store.videoChannelSync.id
+ })
+
+ await waitJobs(server)
+ })
+
+ it('These imports should have a sync id', async function () {
+ const { total, data } = await server.imports.getMyVideoImports()
+
+ expect(total).to.equal(4)
+ expect(data).to.have.lengthOf(4)
+
+ const importsWithSyncId = data.filter(i => !!i.videoChannelSync)
+ expect(importsWithSyncId).to.have.lengthOf(2)
+
+ for (const videoImport of importsWithSyncId) {
+ expect(videoImport.videoChannelSync).to.exist
+ expect(videoImport.videoChannelSync.id).to.equal(server.store.videoChannelSync.id)
+ }
+ })
+
+ it('Should be able to filter imports by this sync id', async function () {
+ const { total, data } = await server.imports.getMyVideoImports({ videoChannelSyncId: server.store.videoChannelSync.id })
+
+ expect(total).to.equal(2)
+ expect(data).to.have.lengthOf(2)
+
+ for (const videoImport of data) {
+ expect(videoImport.videoChannelSync).to.exist
+ expect(videoImport.videoChannelSync.id).to.equal(server.store.videoChannelSync.id)
+ }
+ })
+
after(async function () {
await server?.kill()
})