import 'mocha'
import * as chai from 'chai'
+import { HttpStatusCode } from '@shared/core-utils'
import {
cleanupTests,
closeAllSequelize,
getMyUserInformation,
getPlugin,
getPluginPackageJSON,
- getPluginRegisteredSettings,
+ getPluginTestPath,
getPublicSettings,
installPlugin,
killallServers,
ServerInfo,
setAccessTokensToServers,
setPluginVersion,
+ testHelloWorldRegisteredSettings,
uninstallPlugin,
updateCustomSubConfig,
updateMyUser,
updatePluginSettings,
wait,
waitUntilLog
-} from '../../../../shared/extra-utils'
-import { PeerTubePluginIndex } from '../../../../shared/models/plugins/peertube-plugin-index.model'
-import { PeerTubePlugin } from '../../../../shared/models/plugins/peertube-plugin.model'
-import { PluginPackageJson } from '../../../../shared/models/plugins/plugin-package-json.model'
-import { PluginType } from '../../../../shared/models/plugins/plugin.type'
-import { PublicServerSetting } from '../../../../shared/models/plugins/public-server.setting'
-import { RegisteredServerSettings } from '../../../../shared/models/plugins/register-server-setting.model'
-import { ServerConfig } from '../../../../shared/models/server'
-import { User } from '../../../../shared/models/users'
+} from '@shared/extra-utils'
+import { PeerTubePlugin, PeerTubePluginIndex, PluginPackageJson, PluginType, PublicServerSetting, ServerConfig, User } from '@shared/models'
const expect = chai.expect
})
it('Should get registered settings', async function () {
- const res = await getPluginRegisteredSettings({
- url: server.url,
- accessToken: server.accessToken,
- npmName: 'peertube-plugin-hello-world'
- })
-
- const registeredSettings = (res.body as RegisteredServerSettings).registeredSettings
-
- expect(registeredSettings).to.have.length.at.least(1)
-
- const adminNameSettings = registeredSettings.find(s => s.name === 'admin-name')
- expect(adminNameSettings).to.not.be.undefined
+ await testHelloWorldRegisteredSettings(server)
})
it('Should get public settings', async 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)
expect((res.body as User).theme).to.equal('instance-default')
})
+ it('Should not install a broken plugin', async function () {
+ this.timeout(60000)
+
+ async function check () {
+ const res = await listPlugins({
+ url: server.url,
+ accessToken: server.accessToken,
+ pluginType: PluginType.PLUGIN
+ })
+
+ const plugins: PeerTubePlugin[] = res.body.data
+
+ expect(plugins.find(p => p.name === 'test-broken')).to.not.exist
+ }
+
+ await installPlugin({
+ url: server.url,
+ accessToken: server.accessToken,
+ path: getPluginTestPath('-broken'),
+ expectedStatus: HttpStatusCode.BAD_REQUEST_400
+ })
+
+ await check()
+
+ killallServers([ server ])
+ await reRunServer(server)
+
+ await check()
+ })
+
after(async function () {
await closeAllSequelize([ server ])
await cleanupTests([ server ])