quasqui
Version:
The meta-framework suite designed from scratch for frontend-focused modern web development.
35 lines (33 loc) • 1.17 kB
text/typescript
import path from 'path';
import os from 'os';
import fs from 'fs-extra';
import { AppAPI } from '@modern-js/codesmith-api-app';
import {
CodeSmith,
FsMaterial,
GeneratorCore,
MaterialsManager,
} from '@modern-js/codesmith';
import { PackageManagerSchema } from '../src/common/package-manager';
describe('test pacakge manager schema', () => {
it('get input', async () => {
const projectDir = path.join(os.tmpdir(), 'modern-js-test', 'common');
fs.removeSync(projectDir);
const smith = new CodeSmith({});
const mockGeneratorCore = new GeneratorCore({
logger: smith.logger,
materialsManager: new MaterialsManager(),
outputPath: projectDir,
});
mockGeneratorCore.addMaterial('default', new FsMaterial(projectDir));
mockGeneratorCore._context.current = {
material: new FsMaterial(path.join(__dirname, '..')),
};
const appApi = new AppAPI(mockGeneratorCore._context, mockGeneratorCore);
const ans = await appApi.getInputBySchema(PackageManagerSchema, {
packageManager: 'pnpm',
isMonorepo: true,
});
expect(ans).toEqual({ packageManager: 'pnpm', isMonorepo: true });
});
});