import { describe, it, expect } from 'vitest' import { parseRoutesFamilies } from '../routes-registry.js' // Byte-shaped like the file scaffold-routes emits (AtlasHub portfolio module). const ROUTES_SOURCE = `// ============================================================================ // PROJECTS/PORTFOLIO MODULE — Auto-generated URL helpers // ============================================================================ export const routes = { list: { list: () => '/projects/portfolio/list', detail: (id: string) => \`/projects/portfolio/list/\${id}\`, edit: (id: string) => \`/projects/portfolio/list/\${id}/edit\`, create: () => '/projects/portfolio/list/create', kanban: () => '/projects/portfolio/list/kanban', }, workPackages: { list: () => '/projects/portfolio/list/work-packages', detail: (id: string) => \`/projects/portfolio/list/work-packages/\${id}\`, create: () => '/projects/portfolio/list/work-packages/create', }, history: { list: () => '/projects/portfolio/list/history', }, } as const; ` describe('parseRoutesFamilies', () => { it('parses every family with its helper names', () => { const families = parseRoutesFamilies(ROUTES_SOURCE) expect(Object.keys(families)).toEqual(['list', 'workPackages', 'history']) expect(families.list).toEqual(['list', 'detail', 'edit', 'create', 'kanban']) expect(families.workPackages).toEqual(['list', 'detail', 'create']) expect(families.history).toEqual(['list']) }) it('returns an empty map on a source with no families', () => { expect(parseRoutesFamilies('export const routes = {\n} as const;\n')).toEqual({}) }) })