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');