-/* tslint:disable:no-unused-expression */
+/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
import 'mocha'
import * as chai from 'chai'
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
+ wait,
+ waitUntilLog
} 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'
+import { PluginType } from '../../../../shared/models/plugins/plugin.type'
+import { PublicServerSetting } from '../../../../shared/models/plugins/public-server.setting'
+import { ServerConfig } from '../../../../shared/models/server'
+import { User } from '../../../../shared/models/users'
const expect = chai.expect
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)
}
{
}
})
- 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)
})
})
- 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
})
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 () {
})
})
+ 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({
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,