import fs from 'node:fs' import path from 'node:path' import pino from 'pino' import { describe, expect, it } from 'vitest' import { createApp } from '../src/app' import { communitySkillsDir, config, customSkillsDir } from '../src/config' describe('技能生效目录迁移', () => { it('启动时把 data/ 下的旧目录搬到 managed-skills/,内容不变', () => { const old = path.join(config.dataDir, 'data', 'community-skills', 'skills', 'demo') fs.mkdirSync(old, { recursive: true }) fs.writeFileSync(path.join(old, 'SKILL.md'), '---\nname: demo\n---\n') fs.mkdirSync(path.join(config.dataDir, 'data', 'custom-skills', 'skills'), { recursive: true }) createApp(pino({ level: 'silent' }), { providers: {} }) expect(fs.existsSync(path.join(config.dataDir, 'data', 'community-skills'))).toBe(false) expect(fs.existsSync(path.join(config.dataDir, 'data', 'custom-skills'))).toBe(false) expect(fs.readFileSync(path.join(communitySkillsDir(), 'skills', 'demo', 'SKILL.md'), 'utf8')).toContain('name: demo') expect(customSkillsDir()).toBe(path.join(config.dataDir, 'managed-skills', 'custom')) }) })