import type { RouteRecordRaw } from 'vue-router'; import type { RouteModuleType } from './merge-route-modules'; import { describe, expect, it } from 'vitest'; import { mergeRouteModules } from './merge-route-modules'; describe('mergeRouteModules', () => { it('should merge route modules correctly', () => { const routeModules: Record = { './dynamic-routes/about.ts': { default: [ { component: () => Promise.resolve({ template: '
About
' }), name: 'About', path: '/about', }, ], }, './dynamic-routes/home.ts': { default: [ { component: () => Promise.resolve({ template: '
Home
' }), name: 'Home', path: '/', }, ], }, }; const expectedRoutes: RouteRecordRaw[] = [ { component: expect.any(Function), name: 'About', path: '/about', }, { component: expect.any(Function), name: 'Home', path: '/', }, ]; const mergedRoutes = mergeRouteModules(routeModules); expect(mergedRoutes).toEqual(expectedRoutes); }); it('should handle empty modules', () => { const routeModules: Record = {}; const expectedRoutes: RouteRecordRaw[] = []; const mergedRoutes = mergeRouteModules(routeModules); expect(mergedRoutes).toEqual(expectedRoutes); }); it('should handle modules with no default export', () => { const routeModules: Record = { './dynamic-routes/empty.ts': { default: [], }, }; const expectedRoutes: RouteRecordRaw[] = []; const mergedRoutes = mergeRouteModules(routeModules); expect(mergedRoutes).toEqual(expectedRoutes); }); });