cordis-config-files.spec.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs'
  2. import { tmpdir } from 'node:os'
  3. import { join } from 'node:path'
  4. import { afterEach, describe, expect, it } from 'vitest'
  5. import { cordisConfigFiles } from './cordis-config-files.ts'
  6. const roots: string[] = []
  7. afterEach(() => {
  8. for (const root of roots.splice(0)) rmSync(root, { recursive: true, force: true })
  9. })
  10. describe('cordisConfigFiles', () => {
  11. it('finds Loader YAML without treating translation records as configs', () => {
  12. const root = mkdtempSync(join(tmpdir(), 'dsh-cordis-config-files-'))
  13. roots.push(root)
  14. for (const directory of ['.claude', 'docs', 'examples', 'node_modules/pkg', 'vendor/pkg']) {
  15. mkdirSync(join(root, directory), { recursive: true })
  16. }
  17. for (const file of [
  18. '.claude/hidden.cordis.yml',
  19. 'docs/cordis-primer.i18n.yaml',
  20. 'examples/agent.cordis.yaml',
  21. 'examples/headless.cordis.yml',
  22. 'node_modules/pkg/hidden.cordis.yml',
  23. 'vendor/pkg/hidden.cordis.yml',
  24. ]) {
  25. writeFileSync(join(root, file), '[]\n')
  26. }
  27. expect(cordisConfigFiles(root)).toEqual([
  28. join('examples', 'agent.cordis.yaml'),
  29. join('examples', 'headless.cordis.yml'),
  30. ])
  31. })
  32. })