fix: 防止Bilibili卡片warn未处理拒绝

This commit is contained in:
sunlei 2026-06-19 18:57:51 +08:00
parent 2e98c430d4
commit 89b7d0b281
2 changed files with 17 additions and 2 deletions

View File

@ -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,
);
},
};
}

View File

@ -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');
});
});
/**