/* eslint-disable @typescript-eslint/no-unused-expressions */ import 'mocha' import { expect } from 'chai' import { VideoConstantManagerFactory } from '@server/lib/plugins/video-constant-manager-factory' import { VIDEO_CATEGORIES, VIDEO_LANGUAGES, VIDEO_LICENCES, VIDEO_PLAYLIST_PRIVACIES, VIDEO_PRIVACIES } from '@server/initializers/constants' import { VideoPlaylistPrivacy, VideoPrivacy } from '@shared/models' describe('VideoConstantManagerFactory', function () { const factory = new VideoConstantManagerFactory('peertube-plugin-constants') afterEach(() => { factory.resetVideoConstants('peertube-plugin-constants') }) describe('VideoCategoryManager', () => { const videoCategoryManager = factory.createVideoConstantManager('category') it('Should be able to list all video category constants', () => { const constants = videoCategoryManager.getConstants() expect(constants).to.deep.equal(VIDEO_CATEGORIES) }) it('Should be able to delete a video category constant', () => { const successfullyDeleted = videoCategoryManager.deleteConstant(1) expect(successfullyDeleted).to.be.true expect(videoCategoryManager.getConstantValue(1)).to.be.undefined }) it('Should be able to add a video category constant', () => { const successfullyAdded = videoCategoryManager.addConstant(42, 'The meaning of life') expect(successfullyAdded).to.be.true expect(videoCategoryManager.getConstantValue(42)).to.equal('The meaning of life') }) it('Should be able to reset video category constants', () => { videoCategoryManager.deleteConstant(1) videoCategoryManager.resetConstants() expect(videoCategoryManager.getConstantValue(1)).not.be.undefined }) }) describe('VideoLicenceManager', () => { const videoLicenceManager = factory.createVideoConstantManager('licence') it('Should be able to list all video licence constants', () => { const constants = videoLicenceManager.getConstants() expect(constants).to.deep.equal(VIDEO_LICENCES) }) it('Should be able to delete a video licence constant', () => { const successfullyDeleted = videoLicenceManager.deleteConstant(1) expect(successfullyDeleted).to.be.true expect(videoLicenceManager.getConstantValue(1)).to.be.undefined }) it('Should be able to add a video licence constant', () => { const successfullyAdded = videoLicenceManager.addConstant(42, 'European Union Public Licence') expect(successfullyAdded).to.be.true expect(videoLicenceManager.getConstantValue(42)).to.equal('European Union Public Licence') }) it('Should be able to reset video licence constants', () => { videoLicenceManager.deleteConstant(1) videoLicenceManager.resetConstants() expect(videoLicenceManager.getConstantValue(1)).not.be.undefined }) }) describe('PlaylistPrivacyManager', () => { const playlistPrivacyManager = factory.createVideoConstantManager('playlistPrivacy') it('Should be able to list all video playlist privacy constants', () => { const constants = playlistPrivacyManager.getConstants() expect(constants).to.deep.equal(VIDEO_PLAYLIST_PRIVACIES) }) it('Should be able to delete a video playlist privacy constant', () => { const successfullyDeleted = playlistPrivacyManager.deleteConstant(1) expect(successfullyDeleted).to.be.true expect(playlistPrivacyManager.getConstantValue(1)).to.be.undefined }) it('Should be able to add a video playlist privacy constant', () => { const successfullyAdded = playlistPrivacyManager.addConstant(42, 'Friends only') expect(successfullyAdded).to.be.true expect(playlistPrivacyManager.getConstantValue(42)).to.equal('Friends only') }) it('Should be able to reset video playlist privacy constants', () => { playlistPrivacyManager.deleteConstant(1) playlistPrivacyManager.resetConstants() expect(playlistPrivacyManager.getConstantValue(1)).not.be.undefined }) }) describe('VideoPrivacyManager', () => { const videoPrivacyManager = factory.createVideoConstantManager('privacy') it('Should be able to list all video privacy constants', () => { const constants = videoPrivacyManager.getConstants() expect(constants).to.deep.equal(VIDEO_PRIVACIES) }) it('Should be able to delete a video privacy constant', () => { const successfullyDeleted = videoPrivacyManager.deleteConstant(1) expect(successfullyDeleted).to.be.true expect(videoPrivacyManager.getConstantValue(1)).to.be.undefined }) it('Should be able to add a video privacy constant', () => { const successfullyAdded = videoPrivacyManager.addConstant(42, 'Friends only') expect(successfullyAdded).to.be.true expect(videoPrivacyManager.getConstantValue(42)).to.equal('Friends only') }) it('Should be able to reset video privacy constants', () => { videoPrivacyManager.deleteConstant(1) videoPrivacyManager.resetConstants() expect(videoPrivacyManager.getConstantValue(1)).not.be.undefined }) }) describe('VideoLanguageManager', () => { const videoLanguageManager = factory.createVideoConstantManager('language') it('Should be able to list all video language constants', () => { const constants = videoLanguageManager.getConstants() expect(constants).to.deep.equal(VIDEO_LANGUAGES) }) it('Should be able to add a video language constant', () => { const successfullyAdded = videoLanguageManager.addConstant('fr', 'Fr occitan') expect(successfullyAdded).to.be.true expect(videoLanguageManager.getConstantValue('fr')).to.equal('Fr occitan') }) it('Should be able to delete a video language constant', () => { videoLanguageManager.addConstant('fr', 'Fr occitan') const successfullyDeleted = videoLanguageManager.deleteConstant('fr') expect(successfullyDeleted).to.be.true expect(videoLanguageManager.getConstantValue('fr')).to.be.undefined }) it('Should be able to reset video language constants', () => { videoLanguageManager.addConstant('fr', 'Fr occitan') videoLanguageManager.resetConstants() expect(videoLanguageManager.getConstantValue('fr')).to.be.undefined }) }) })