#!/usr/bin/env node /** * GetSkill 基本验证脚本 * 用于验证模块是否正确加载和基本功能是否正常 */ const getskill = require('./index.js'); const os = require('os'); console.log('=== GetSkill 验证测试 ===\n'); // 测试 1: 模块导出验证 console.log('✓ 测试 1: 验证模块导出'); const requiredExports = [ 'searchSkills', 'getSkillDetail', 'downloadSkill', 'updateSkill', 'listLocalSkills', 'getSkillsDirectory', 'getSkillsCacheDirectory', 'checkGitInstalled', 'ensureGitInstalled', 'cloneOrUpdateRepo', 'copySkillFiles' ]; let allExportsPresent = true; requiredExports.forEach(exportName => { if (typeof getskill[exportName] !== 'function') { console.error(` ✗ 缺少导出函数: ${exportName}`); allExportsPresent = false; } }); if (allExportsPresent) { console.log(` ✓ 所有 ${requiredExports.length} 个导出函数都存在\n`); } else { console.error(' ✗ 部分导出函数缺失\n'); process.exit(1); } // 测试 2: 目录路径验证 console.log('✓ 测试 2: 验证目录路径'); try { const skillsDir = getskill.getSkillsDirectory(); const cacheDir = getskill.getSkillsCacheDirectory(); console.log(` 技能目录: ${skillsDir}`); console.log(` 缓存目录: ${cacheDir}`); const homeDir = os.homedir(); if (!skillsDir.includes(homeDir)) { throw new Error('技能目录路径不包含用户主目录'); } if (!cacheDir.includes(homeDir)) { throw new Error('缓存目录路径不包含用户主目录'); } console.log(' ✓ 目录路径正确\n'); } catch (error) { console.error(` ✗ 目录路径验证失败: ${error.message}\n`); process.exit(1); } // 测试 3: Git 检测 console.log('✓ 测试 3: Git 安装检测'); getskill.checkGitInstalled() .then(isInstalled => { if (isInstalled) { console.log(' ✓ Git 已安装\n'); } else { console.log(' ⚠ Git 未安装(功能正常,但需要安装 Git 才能使用 install/update 命令)\n'); } }) .catch(error => { console.error(` ✗ Git 检测失败: ${error.message}\n`); }) .finally(() => { // 测试 4: 列出本地技能 console.log('✓ 测试 4: 列出本地技能'); try { const localSkills = getskill.listLocalSkills(); console.log(` 本地技能数量: ${localSkills.length}`); if (localSkills.length > 0) { console.log(' 已安装的技能:'); localSkills.forEach(skill => { console.log(` - ${skill}`); }); } else { console.log(' (未安装任何技能)'); } console.log(' ✓ 列出本地技能功能正常\n'); } catch (error) { console.error(` ✗ 列出本地技能失败: ${error.message}\n`); } console.log('=== 验证完成 ==='); console.log('\n提示: 运行 "node index.js" 或 "getskill" 查看完整命令帮助'); });