managed-skills-migration.test.ts 1.1 KB

12345678910111213141516171819202122
  1. import fs from 'node:fs'
  2. import path from 'node:path'
  3. import pino from 'pino'
  4. import { describe, expect, it } from 'vitest'
  5. import { createApp } from '../src/app'
  6. import { communitySkillsDir, config, customSkillsDir } from '../src/config'
  7. describe('技能生效目录迁移', () => {
  8. it('启动时把 data/ 下的旧目录搬到 managed-skills/,内容不变', () => {
  9. const old = path.join(config.dataDir, 'data', 'community-skills', 'skills', 'demo')
  10. fs.mkdirSync(old, { recursive: true })
  11. fs.writeFileSync(path.join(old, 'SKILL.md'), '---\nname: demo\n---\n')
  12. fs.mkdirSync(path.join(config.dataDir, 'data', 'custom-skills', 'skills'), { recursive: true })
  13. createApp(pino({ level: 'silent' }), { providers: {} })
  14. expect(fs.existsSync(path.join(config.dataDir, 'data', 'community-skills'))).toBe(false)
  15. expect(fs.existsSync(path.join(config.dataDir, 'data', 'custom-skills'))).toBe(false)
  16. expect(fs.readFileSync(path.join(communitySkillsDir(), 'skills', 'demo', 'SKILL.md'), 'utf8')).toContain('name: demo')
  17. expect(customSkillsDir()).toBe(path.join(config.dataDir, 'managed-skills', 'custom'))
  18. })
  19. })