import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, describe, expect, it } from 'vitest' import { cordisConfigFiles } from './cordis-config-files.ts' const roots: string[] = [] afterEach(() => { for (const root of roots.splice(0)) rmSync(root, { recursive: true, force: true }) }) describe('cordisConfigFiles', () => { it('finds Loader YAML without treating translation records as configs', () => { const root = mkdtempSync(join(tmpdir(), 'dsh-cordis-config-files-')) roots.push(root) for (const directory of ['.claude', 'docs', 'examples', 'node_modules/pkg', 'vendor/pkg']) { mkdirSync(join(root, directory), { recursive: true }) } for (const file of [ '.claude/hidden.cordis.yml', 'docs/cordis-primer.i18n.yaml', 'examples/agent.cordis.yaml', 'examples/headless.cordis.yml', 'node_modules/pkg/hidden.cordis.yml', 'vendor/pkg/hidden.cordis.yml', ]) { writeFileSync(join(root, file), '[]\n') } expect(cordisConfigFiles(root)).toEqual([ join('examples', 'agent.cordis.yaml'), join('examples', 'headless.cordis.yml'), ]) }) })