From c5de5ef1d0d6e9fd8c8399ecc39bebd2ff244d48 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 10 Jul 2024 12:12:07 +0200 Subject: [PATCH] Fix registering unamed settings --- packages/tests/fixtures/peertube-plugin-test/main.js | 10 ++++++++++ packages/tests/src/plugins/plugin-settings.ts | 3 ++- server/core/lib/plugins/register-helpers.ts | 3 ++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/tests/fixtures/peertube-plugin-test/main.js b/packages/tests/fixtures/peertube-plugin-test/main.js index c2570e6fc..e44199d7c 100644 --- a/packages/tests/fixtures/peertube-plugin-test/main.js +++ b/packages/tests/fixtures/peertube-plugin-test/main.js @@ -19,6 +19,16 @@ async function register ({ registerHook, registerSetting, settingsManager, stora ] }) + registerSetting({ + label: 'Unnamed 1', + type: 'input' + }) + + registerSetting({ + label: 'Unnamed 2', + type: 'input' + }) + const actionHooks = [ 'action:application.listening', 'action:notifier.notification.created', diff --git a/packages/tests/src/plugins/plugin-settings.ts b/packages/tests/src/plugins/plugin-settings.ts index cd41c425d..e1dd8e838 100644 --- a/packages/tests/src/plugins/plugin-settings.ts +++ b/packages/tests/src/plugins/plugin-settings.ts @@ -31,7 +31,8 @@ describe('Test plugin settings', function () { npmName: 'peertube-plugin-test' }) - expect(registeredSettings.length).to.equal(1) + expect(registeredSettings.length).to.equal(3) + expect(registeredSettings.map(r => r.label)).to.have.members([ 'Unique setting', 'Unnamed 1', 'Unnamed 2' ]) }) it('Should return the latest registered settings', async function () { diff --git a/server/core/lib/plugins/register-helpers.ts b/server/core/lib/plugins/register-helpers.ts index dc46612a5..0ec4ebfc3 100644 --- a/server/core/lib/plugins/register-helpers.ts +++ b/server/core/lib/plugins/register-helpers.ts @@ -204,7 +204,8 @@ export class RegisterHelpers { private buildRegisterSetting () { return (options: RegisterServerSettingOptions) => { this.settings = [ - ...this.settings.filter((s) => s.name !== options.name), + ...this.settings.filter(s => !s.name || s.name !== options.name), + options ] }