1 /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
3 import { expect } from 'chai'
10 setAccessTokensToServers
11 } from '@shared/server-commands'
13 describe('Test plugin scripts', function () {
14 let server: PeerTubeServer
16 before(async function () {
19 server = await createSingleServer(1)
20 await setAccessTokensToServers([ server ])
23 it('Should install a plugin from stateless CLI', async function () {
26 const packagePath = PluginsCommand.getPluginTestPath()
28 await server.cli.execWithEnv(`npm run plugin:install -- --plugin-path ${packagePath}`)
31 it('Should install a theme from stateless CLI', async function () {
34 await server.cli.execWithEnv(`npm run plugin:install -- --npm-name peertube-theme-background-red`)
37 it('Should have the theme and the plugin registered when we restart peertube', async function () {
40 await killallServers([ server ])
43 const config = await server.config.getConfig()
45 const plugin = config.plugin.registered
46 .find(p => p.name === 'test')
47 expect(plugin).to.not.be.undefined
49 const theme = config.theme.registered
50 .find(t => t.name === 'background-red')
51 expect(theme).to.not.be.undefined
54 it('Should uninstall a plugin from stateless CLI', async function () {
57 await server.cli.execWithEnv(`npm run plugin:uninstall -- --npm-name peertube-plugin-test`)
60 it('Should have removed the plugin on another peertube restart', async function () {
63 await killallServers([ server ])
66 const config = await server.config.getConfig()
68 const plugin = config.plugin.registered
69 .find(p => p.name === 'test')
70 expect(plugin).to.be.undefined
73 after(async function () {
74 await cleanupTests([ server ])