UNPKG

rerumaccusamus

Version:

The meta-framework suite designed from scratch for frontend-focused modern web development.

95 lines (82 loc) 2.65 kB
import path from 'path'; import { IAppContext, NormalizedConfig } from '@modern-js/core'; import { getFileSystemEntry } from '../src/getFileSystemEntry'; describe('get entrypoints from file system', () => { const fixtures = path.resolve(__dirname, './fixtures/entries'); const config = { source: { entriesDir: './src' } }; test('should have one entry include src/App', () => { const appContext = { appDirectory: path.resolve(fixtures, './single-entry'), }; expect( getFileSystemEntry(appContext as IAppContext, config as NormalizedConfig), ).toMatchObject([ { entryName: 'src', entry: path.resolve(fixtures, './single-entry/src/App'), isAutoMount: true, customBootstrap: false, }, ]); }); test(`should have one entry include src/pages`, () => { const appContext = { appDirectory: path.resolve(fixtures, './file-system-routes'), }; expect( getFileSystemEntry(appContext as IAppContext, config as NormalizedConfig), ).toMatchObject([ { entryName: 'src', entry: path.resolve(fixtures, './file-system-routes/src/pages'), isAutoMount: true, customBootstrap: false, fileSystemRoutes: { globalApp: path.resolve( fixtures, './file-system-routes/src/pages/_app.ts', ), }, }, ]); }); test(`should have one index entry with isAutoMount false`, () => { const appContext = { appDirectory: path.resolve(fixtures, './index-entry'), }; expect( getFileSystemEntry(appContext as IAppContext, config as NormalizedConfig), ).toMatchObject([ { entryName: 'src', entry: path.resolve(appContext.appDirectory, './src/index.jsx'), isAutoMount: false, }, ]); }); test(`should have one entry with custom bootstrap function`, () => { const appContext = { appDirectory: path.resolve(fixtures, './custom-bootstrap'), }; expect( getFileSystemEntry(appContext as IAppContext, config as NormalizedConfig), ).toMatchObject([ { entryName: 'src', entry: path.resolve(appContext.appDirectory, './src/App'), isAutoMount: true, customBootstrap: path.resolve( appContext.appDirectory, './src/index.tsx', ), }, ]); }); test(`should have no entry`, () => { const appContext = { appDirectory: path.resolve(fixtures, './no-entry') }; expect( getFileSystemEntry(appContext as IAppContext, config as NormalizedConfig) .length, ).toBe(0); }); });