quasqui
Version:
The meta-framework suite designed from scratch for frontend-focused modern web development.
45 lines (38 loc) • 1.36 kB
text/typescript
import path from 'path';
import { AppContext, manager, createAsyncWorkflow } from '@modern-js/core';
import { fs } from '@modern-js/utils';
import plugin from '../src';
import { getPluginsCode, getRequireCode } from '../src/utils';
describe('plugin-multiprocess', () => {
const distDirectory = path.join(__dirname, './fixtures/ssr-bff');
afterAll(() => {
fs.removeSync(path.join(distDirectory, 'api-server'));
fs.removeSync(path.join(distDirectory, 'ssr-server'));
fs.removeSync(path.join(distDirectory, 'web-server'));
});
it('default', async () => {
expect(plugin).toBeDefined();
const afterBuild = createAsyncWorkflow<any, any>();
manager.registe({
afterBuild,
});
manager.usePlugin(plugin);
manager.run(() => {
AppContext.set({
distDirectory,
plugins: [],
} as any);
});
const runner = await manager.init();
runner.afterBuild();
});
it('should generate code correctly', () => {
const pluginCode = getPluginsCode(['pluginA', 'pluginB']);
expect(pluginCode).toBe('[plugin_0,plugin_1]');
const requireCode = getRequireCode(['pluginA', 'pluginB']);
expect(requireCode).toBe(`const mod_0 = require('pluginA');
const plugin_0 = mod_0.default || mod_0;
const mod_1 = require('pluginB');
const plugin_1 = mod_1.default || mod_1;`);
});
});