]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/tests/api/server/plugins.ts
Merge branch 'release/3.2.0' into develop
[github/Chocobozzz/PeerTube.git] / server / tests / api / server / plugins.ts
index f8b2d78c92570ef5944b9b32d183e03d6e297453..6046ab97e21edc858adfcc1d7c35447c4d272ca9 100644 (file)
@@ -1,4 +1,4 @@
-/* tslint:disable:no-unused-expression */
+/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
 
 import 'mocha'
 import * as chai from 'chai'
@@ -6,27 +6,30 @@ import {
   cleanupTests,
   closeAllSequelize,
   flushAndRunServer,
-  getConfig, getMyUserInformation, getPluginPackageJSON,
+  getConfig,
+  getMyUserInformation,
   getPlugin,
-  getPluginRegisteredSettings,
-  getPluginsCSS,
-  installPlugin, killallServers,
+  getPluginPackageJSON,
+  getPublicSettings,
+  installPlugin,
+  killallServers,
   listAvailablePlugins,
-  listPlugins, reRunServer,
+  listPlugins,
+  reRunServer,
   ServerInfo,
   setAccessTokensToServers,
-  setPluginVersion, uninstallPlugin,
-  updateCustomSubConfig, updateMyUser, updatePluginPackageJSON, updatePlugin,
+  setPluginVersion,
+  testHelloWorldRegisteredSettings,
+  uninstallPlugin,
+  updateCustomSubConfig,
+  updateMyUser,
+  updatePlugin,
+  updatePluginPackageJSON,
   updatePluginSettings,
-  wait
-} from '../../../../shared/extra-utils'
-import { PluginType } from '../../../../shared/models/plugins/plugin.type'
-import { PeerTubePluginIndex } from '../../../../shared/models/plugins/peertube-plugin-index.model'
-import { ServerConfig } from '../../../../shared/models/server'
-import { PeerTubePlugin } from '../../../../shared/models/plugins/peertube-plugin.model'
-import { User } from '../../../../shared/models/users'
-import { PluginPackageJson } from '../../../../shared/models/plugins/plugin-package-json.model'
-import { RegisteredServerSettings } from '../../../../shared/models/plugins/register-server-setting.model'
+  wait,
+  waitUntilLog
+} from '@shared/extra-utils'
+import { PeerTubePlugin, PeerTubePluginIndex, PluginPackageJson, PluginType, PublicServerSetting, ServerConfig, User } from '@shared/models'
 
 const expect = chai.expect
 
@@ -87,7 +90,7 @@ describe('Test plugins', function () {
       expect(res2.body.total).to.be.at.least(2)
       expect(data2).to.have.lengthOf(2)
 
-      expect(data1[0].npmName).to.not.equal(data2[ 0 ].npmName)
+      expect(data1[0].npmName).to.not.equal(data2[0].npmName)
     }
 
     {
@@ -107,12 +110,6 @@ describe('Test plugins', function () {
     }
   })
 
-  it('Should have an empty global css', async function () {
-    const res = await getPluginsCSS(server.url)
-
-    expect(res.text).to.be.empty
-  })
-
   it('Should install a plugin and a theme', async function () {
     this.timeout(30000)
 
@@ -129,12 +126,6 @@ describe('Test plugins', function () {
     })
   })
 
-  it('Should have the correct global css', async function () {
-    const res = await getPluginsCSS(server.url)
-
-    expect(res.text).to.contain('--mainBackgroundColor')
-  })
-
   it('Should have the plugin loaded in the configuration', async function () {
     const res = await getConfig(server.url)
     const config: ServerConfig = res.body
@@ -211,18 +202,17 @@ describe('Test plugins', function () {
   })
 
   it('Should get registered settings', async function () {
-    const res = await getPluginRegisteredSettings({
-      url: server.url,
-      accessToken: server.accessToken,
-      npmName: 'peertube-plugin-hello-world'
-    })
+    await testHelloWorldRegisteredSettings(server)
+  })
 
-    const settings = (res.body as RegisteredServerSettings).settings
+  it('Should get public settings', async function () {
+    const res = await getPublicSettings({ url: server.url, npmName: 'peertube-plugin-hello-world' })
 
-    expect(settings).to.have.length.at.least(1)
+    const publicSettings = (res.body as PublicServerSetting).publicSettings
 
-    const adminNameSettings = settings.find(s => s.name === 'admin-name')
-    expect(adminNameSettings).to.not.be.undefined
+    expect(Object.keys(publicSettings)).to.have.lengthOf(1)
+    expect(Object.keys(publicSettings)).to.deep.equal([ 'user-name' ])
+    expect(publicSettings['user-name']).to.be.null
   })
 
   it('Should update the settings', async function () {
@@ -238,6 +228,12 @@ describe('Test plugins', function () {
     })
   })
 
+  it('Should have watched settings changes', async function () {
+    this.timeout(10000)
+
+    await waitUntilLog(server, 'Settings changed!')
+  })
+
   it('Should get a plugin and a theme', async function () {
     {
       const res = await getPlugin({
@@ -288,7 +284,7 @@ describe('Test plugins', function () {
   })
 
   it('Should update the plugin and the theme', async function () {
-    this.timeout(30000)
+    this.timeout(90000)
 
     // Wait the scheduler that get the latest plugins versions
     await wait(6000)
@@ -360,12 +356,6 @@ describe('Test plugins', function () {
     expect(res.body.data).to.have.lengthOf(0)
   })
 
-  it('Should have an empty global css', async function () {
-    const res = await getPluginsCSS(server.url)
-
-    expect(res.text).to.be.empty
-  })
-
   it('Should list uninstalled plugins', async function () {
     const res = await listPlugins({
       url: server.url,