From 89b7d0b281f1015027626ad31ef0f7b1acc15f5d Mon Sep 17 00:00:00 2001 From: sunlei Date: Fri, 19 Jun 2026 18:57:51 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=98=B2=E6=AD=A2Bilibili=E5=8D=A1?= =?UTF-8?q?=E7=89=87warn=E6=9C=AA=E5=A4=84=E7=90=86=E6=8B=92=E7=BB=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../integration/bilibili-card-host.ts | 5 +++-- .../bilibili-card/bilibili-video-client.spec.ts | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/modules/qqbot/plugins/bilibili-card/src/infrastructure/integration/bilibili-card-host.ts b/src/modules/qqbot/plugins/bilibili-card/src/infrastructure/integration/bilibili-card-host.ts index a47acf8..76f645b 100644 --- a/src/modules/qqbot/plugins/bilibili-card/src/infrastructure/integration/bilibili-card-host.ts +++ b/src/modules/qqbot/plugins/bilibili-card/src/infrastructure/integration/bilibili-card-host.ts @@ -60,8 +60,9 @@ export function createBilibiliCardGenericHostAdapter( * @param message - Warning message safe for platform logs. */ warn: (message) => { - const warn = host.warn; - if (typeof warn === 'function') warn(message); + void callBilibiliCardGenericHost(host, 'warn', message).catch( + () => undefined, + ); }, }; } diff --git a/test/modules/qqbot/plugins/bilibili-card/bilibili-video-client.spec.ts b/test/modules/qqbot/plugins/bilibili-card/bilibili-video-client.spec.ts index 6ecd55e..472ad4b 100644 --- a/test/modules/qqbot/plugins/bilibili-card/bilibili-video-client.spec.ts +++ b/test/modules/qqbot/plugins/bilibili-card/bilibili-video-client.spec.ts @@ -1,6 +1,7 @@ import { readBilibiliCardRuntimeConfig } from '../../../../../src/modules/qqbot/plugins/bilibili-card/src/config/bilibili-card-config'; import type { BilibiliCardPluginHost } from '../../../../../src/modules/qqbot/plugins/bilibili-card/src/domain/bilibili-card.types'; import { formatBilibiliVideoReply } from '../../../../../src/modules/qqbot/plugins/bilibili-card/src/domain/bilibili-reply-formatter'; +import { createBilibiliCardGenericHostAdapter } from '../../../../../src/modules/qqbot/plugins/bilibili-card/src/infrastructure/integration/bilibili-card-host'; import { BilibiliVideoClient } from '../../../../../src/modules/qqbot/plugins/bilibili-card/src/infrastructure/integration/bilibili-video-client'; describe('Bilibili video client', () => { @@ -147,6 +148,19 @@ describe('Bilibili video client', () => { maxRedirects: 10, }); }); + + it('emits generic host warnings without surfacing rejected log calls', async () => { + const host = { + warn: jest.fn().mockRejectedValue(new Error('log down')), + }; + const adapter = createBilibiliCardGenericHostAdapter(host, {}); + + adapter.warn?.('hello'); + await Promise.resolve(); + await Promise.resolve(); + + expect(host.warn).toHaveBeenCalledWith('hello'); + }); }); /**