83 lines
2.6 KiB
TypeScript
83 lines
2.6 KiB
TypeScript
import { Tree } from '@nrwl/tao/src/shared/tree';
|
|
import { createTree } from '../tests/create-tree';
|
|
import { generateFiles } from './generate-files';
|
|
import { join } from 'path';
|
|
import * as FileType from 'file-type';
|
|
|
|
describe('generateFiles', () => {
|
|
let tree: Tree;
|
|
beforeAll(() => {
|
|
tree = createTree();
|
|
generateFiles(tree, join(__dirname, './test-files'), '.', {
|
|
foo: 'bar',
|
|
name: 'my-project',
|
|
projectName: 'my-project-name',
|
|
dot: '.',
|
|
});
|
|
});
|
|
|
|
it('should copy files from a directory into a tree', () => {
|
|
expect(tree.exists('file.txt')).toBeTruthy();
|
|
expect(tree.read('file.txt', 'utf-8')).toMatchSnapshot();
|
|
});
|
|
|
|
it('should copy files from a directory into the tree', () => {
|
|
expect(tree.exists('directory/file-in-directory.txt')).toBeTruthy();
|
|
expect(
|
|
tree.read('directory/file-in-directory.txt', 'utf-8')
|
|
).toMatchSnapshot();
|
|
});
|
|
|
|
it('should remove ".template" from paths', () => {
|
|
expect(
|
|
tree.exists('file-with-template-suffix.txt.template')
|
|
).not.toBeTruthy();
|
|
expect(tree.exists('file-with-template-suffix.txt')).toBeTruthy();
|
|
expect(
|
|
tree.read('file-with-template-suffix.txt', 'utf-8')
|
|
).toMatchSnapshot();
|
|
});
|
|
|
|
it('should substitute properties in paths', () => {
|
|
expect(tree.exists('file-with-property-foo-__foo__.txt')).not.toBeTruthy();
|
|
expect(tree.exists('file-with-property-foo-bar.txt')).toBeTruthy();
|
|
expect(
|
|
tree.read('file-with-property-foo-bar.txt', 'utf-8')
|
|
).toMatchSnapshot();
|
|
});
|
|
|
|
it('should substitute properties in directory names', () => {
|
|
expect(
|
|
tree.exists('directory-foo-__foo__/file-in-directory-foo-__foo__.txt')
|
|
).not.toBeTruthy();
|
|
expect(
|
|
tree.exists('directory-foo-bar/file-in-directory-foo-bar.txt')
|
|
).toBeTruthy();
|
|
expect(
|
|
tree.read('directory-foo-bar/file-in-directory-foo-bar.txt', 'utf-8')
|
|
).toMatchSnapshot();
|
|
});
|
|
|
|
it('should generate files from template in a directory', () => {
|
|
expect(tree.exists(`src/common-util.ts`)).toBeTruthy();
|
|
expect(
|
|
tree.exists(`src/my-project-name/create-my-project.input.ts`)
|
|
).toBeTruthy();
|
|
expect(
|
|
tree.exists(
|
|
`src/my-project-name/my-project/my-project-name.my-project.model.ts`
|
|
)
|
|
).toBeTruthy();
|
|
expect(tree.exists(`src/my-project-name/output/.gitkeep`)).toBeTruthy();
|
|
expect(tree.exists(`src/my-project.module.ts`)).toBeTruthy();
|
|
});
|
|
|
|
it('should preserve image files', async () => {
|
|
expect(tree.exists('image.png')).toBeTruthy();
|
|
await expect(FileType.fromBuffer(tree.read('image.png'))).resolves.toEqual({
|
|
ext: 'png',
|
|
mime: 'image/png',
|
|
});
|
|
});
|
|
});
|