From 27a9d3ec440c852c8d5644f7f539db16237237ac Mon Sep 17 00:00:00 2001 From: tanzhenxin Date: Fri, 6 Feb 2026 13:37:35 +0800 Subject: [PATCH] refactor(skill): add null check for SkillManager and update tests Co-authored-by: Qwen-Coder --- packages/cli/src/config/config.test.ts | 9 +++++++++ packages/core/src/config/config.test.ts | 3 +++ packages/core/src/tools/skill.ts | 6 +++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/config/config.test.ts b/packages/cli/src/config/config.test.ts index 2f34cac4c..dbe57fd42 100644 --- a/packages/cli/src/config/config.test.ts +++ b/packages/cli/src/config/config.test.ts @@ -116,11 +116,20 @@ vi.mock('read-package-up', () => ({ vi.mock('@qwen-code/qwen-code-core', async (importOriginal) => { const actualServer = await importOriginal(); + const SkillManagerMock = vi.fn(); + SkillManagerMock.prototype.startWatching = vi + .fn() + .mockResolvedValue(undefined); + SkillManagerMock.prototype.stopWatching = vi.fn(); + SkillManagerMock.prototype.listSkills = vi.fn().mockResolvedValue([]); + SkillManagerMock.prototype.addChangeListener = vi.fn(); + SkillManagerMock.prototype.removeChangeListener = vi.fn(); return { ...actualServer, NativeLspService: vi .fn() .mockImplementation(() => createNativeLspServiceInstance()), + SkillManager: SkillManagerMock, IdeClient: { getInstance: vi.fn().mockResolvedValue({ getConnectionStatus: vi.fn(), diff --git a/packages/core/src/config/config.test.ts b/packages/core/src/config/config.test.ts index de1a680ad..4d2af04b3 100644 --- a/packages/core/src/config/config.test.ts +++ b/packages/core/src/config/config.test.ts @@ -165,6 +165,9 @@ vi.mock('../skills/skill-manager.js', () => { .fn() .mockResolvedValue(undefined); SkillManagerMock.prototype.stopWatching = vi.fn(); + SkillManagerMock.prototype.listSkills = vi.fn().mockResolvedValue([]); + SkillManagerMock.prototype.addChangeListener = vi.fn(); + SkillManagerMock.prototype.removeChangeListener = vi.fn(); return { SkillManager: SkillManagerMock }; }); diff --git a/packages/core/src/tools/skill.ts b/packages/core/src/tools/skill.ts index 83ae43b33..68ec7dd55 100644 --- a/packages/core/src/tools/skill.ts +++ b/packages/core/src/tools/skill.ts @@ -56,7 +56,11 @@ export class SkillTool extends BaseDeclarativeTool { false, // canUpdateOutput ); - this.skillManager = config.getSkillManager()!; + const skillManager = config.getSkillManager(); + if (!skillManager) { + throw new Error('SkillManager not available'); + } + this.skillManager = skillManager; this.skillManager.addChangeListener(() => { void this.refreshSkills(); });