103 lines
2.7 KiB
TypeScript

import type { ResultDir } from '@alilc/lowcode-types';
import _ from 'lodash';
import CodeGen from '../../../src';
const loadResult = (): ResultDir => _.cloneDeep(require('./example-result.json'));
describe('CodeGen.utils.resultHelper.removeFilesFromResult', () => {
it('could remove package.json by "package.json"', () => {
const result = loadResult();
expect(listAllFiles(result)).toMatchInlineSnapshot(`
Array [
".eslintrc",
"package.json",
"src/index.js",
"src/index.css",
"src/components/index.js",
"src/components/Hello/index.js",
"src/components/Hello/index.css",
]
`);
const removed = CodeGen.utils.resultHelper.removeFilesFromResult(result, 'package.json');
expect(listAllFiles(result)).toMatchInlineSnapshot(`
Array [
".eslintrc",
"src/index.js",
"src/index.css",
"src/components/index.js",
"src/components/Hello/index.js",
"src/components/Hello/index.css",
]
`);
expect(removed).toBe(1);
});
it('could remove .eslintrc.json by ".eslintrc" with dot=true', () => {
const result = loadResult();
expect(listAllFiles(result)).toMatchInlineSnapshot(`
Array [
".eslintrc",
"package.json",
"src/index.js",
"src/index.css",
"src/components/index.js",
"src/components/Hello/index.js",
"src/components/Hello/index.css",
]
`);
const removed = CodeGen.utils.resultHelper.removeFilesFromResult(result, '.eslintrc', {
dot: true,
});
expect(listAllFiles(result)).toMatchInlineSnapshot(`
Array [
"package.json",
"src/index.js",
"src/index.css",
"src/components/index.js",
"src/components/Hello/index.js",
"src/components/Hello/index.css",
]
`);
expect(removed).toBe(1);
});
it('could remove all css files by "**/*.css"', () => {
const result = loadResult();
expect(listAllFiles(result)).toMatchInlineSnapshot(`
Array [
".eslintrc",
"package.json",
"src/index.js",
"src/index.css",
"src/components/index.js",
"src/components/Hello/index.js",
"src/components/Hello/index.css",
]
`);
const removed = CodeGen.utils.resultHelper.removeFilesFromResult(result, '**/*.css');
expect(listAllFiles(result)).toMatchInlineSnapshot(`
Array [
".eslintrc",
"package.json",
"src/index.js",
"src/components/index.js",
"src/components/Hello/index.js",
]
`);
expect(removed).toBe(2);
});
});
function listAllFiles(result: ResultDir): string[] {
return Array.from(CodeGen.utils.resultHelper.scanFiles(result)).map(([filePath]) => filePath);
}