rerumaccusamus
Version:
The meta-framework suite designed from scratch for frontend-focused modern web development.
68 lines (57 loc) • 1.73 kB
text/typescript
import inquirer from 'inquirer';
import { Server } from '@modern-js/server';
import {
closeServer,
createServer,
getServer,
} from '../src/utils/createServer';
import { getSpecifiedEntries } from '../src/utils/getSpecifiedEntries';
describe('test app-tools utils', () => {
it('should return all entryNames correctly', async () => {
const checked = await getSpecifiedEntries(false, [
{ entryName: 'a' },
{ entryName: 'b' },
] as any);
expect(checked).toEqual(['a', 'b']);
});
it('should return spec entry', async () => {
const checked = await getSpecifiedEntries(['a'], [
{ entryName: 'a' },
{ entryName: 'b' },
] as any);
expect(checked).toEqual(['a']);
});
it('should return select entry', async () => {
inquirer.prompt = jest.fn().mockResolvedValue({ selected: ['b'] }) as any;
const checked = await getSpecifiedEntries(true, [
{ entryName: 'a' },
{ entryName: 'b' },
] as any);
expect(checked).toEqual(['b']);
});
it('should get error if entry not allow', resolve => {
getSpecifiedEntries(['c'], [
{ entryName: 'a' },
{ entryName: 'b' },
// eslint-disable-next-line promise/prefer-await-to-then
] as any).catch(e => {
expect((e as Error).message).toMatch('can not found entry c');
resolve();
});
});
it('should create and close server correctly', async () => {
const app = await createServer({
dev: false,
pwd: '.',
config: {
output: {
path: 'dist',
},
},
} as any);
expect(app instanceof Server).toBe(true);
expect(getServer()).toBe(app);
await closeServer();
expect(getServer()).toBeNull();
});
});