From 46f9152248d79b68a67e4ea8344b7fa515d254fc Mon Sep 17 00:00:00 2001 From: sunlei Date: Thu, 18 Jun 2026 03:30:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BD=BF=E7=94=A8=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E9=94=AE=E7=BB=91=E5=AE=9A=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../runtime/plugin-host-bridge.service.ts | 4 ++-- .../plugin-platform/plugin-host-bridge.spec.ts | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/modules/qqbot/plugin-platform/infrastructure/integration/runtime/plugin-host-bridge.service.ts b/src/modules/qqbot/plugin-platform/infrastructure/integration/runtime/plugin-host-bridge.service.ts index d27f35d..18860b2 100644 --- a/src/modules/qqbot/plugin-platform/infrastructure/integration/runtime/plugin-host-bridge.service.ts +++ b/src/modules/qqbot/plugin-platform/infrastructure/integration/runtime/plugin-host-bridge.service.ts @@ -76,7 +76,7 @@ export class QqbotPluginHostBridgeService { case 'bindEventPlugin': return this.accountService.bindEventPlugin( getRequiredText(args, 'selfId'), - getRequiredText(args, 'pluginKey'), + request.pluginKey, ); case 'getBoundEventPluginKeys': return this.accountService.getBoundEventPluginKeys( @@ -117,7 +117,7 @@ export class QqbotPluginHostBridgeService { case 'unbindEventPlugin': return this.accountService.unbindEventPlugin( getRequiredText(args, 'selfId'), - getRequiredText(args, 'pluginKey'), + request.pluginKey, ); case 'warn': this.logger.warn({ diff --git a/test/modules/qqbot/plugin-platform/plugin-host-bridge.spec.ts b/test/modules/qqbot/plugin-platform/plugin-host-bridge.spec.ts index 1e8f350..a2a95a9 100644 --- a/test/modules/qqbot/plugin-platform/plugin-host-bridge.spec.ts +++ b/test/modules/qqbot/plugin-platform/plugin-host-bridge.spec.ts @@ -134,7 +134,7 @@ describe('QQBot plugin host bridge', () => { await expect( bridge.handleHostCall(descriptor, { - args: { selfId: '10001', pluginKey: 'sample' }, + args: { selfId: '10001', pluginKey: 'other-plugin' }, method: 'bindEventPlugin', pluginKey: 'sample', }), @@ -154,6 +154,21 @@ describe('QQBot plugin host bridge', () => { expect(sendService.sendText).toHaveBeenCalledWith(sendInput); }); + it('uses the request plugin key when unbinding event plugins', async () => { + const descriptor = createDescriptor(); + + await bridge.handleHostCall(descriptor, { + args: { selfId: '10001', pluginKey: 'other-plugin' }, + method: 'unbindEventPlugin', + pluginKey: 'sample', + }); + + expect(accountService.unbindEventPlugin).toHaveBeenCalledWith( + '10001', + 'sample', + ); + }); + it('reads JSON files from descriptor package roots', async () => { const descriptor = createDescriptor(); const filePath = join(tempRoot, 'data', 'sample.json');