nx/packages/angular/src/generators/utils/export-scam.spec.ts

117 lines
3.4 KiB
TypeScript

import { addProjectConfiguration, writeJson } from '@nrwl/devkit';
import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing';
import { exportScam } from './export-scam';
describe('exportScam', () => {
it('should not throw when project is an application (does not have entry point)', () => {
// ARRANGE
const tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
addProjectConfiguration(tree, 'app1', {
projectType: 'application',
sourceRoot: 'apps/app1/src',
root: 'apps/app1',
});
// ACT & ASSERT
expect(() =>
exportScam(tree, {
directory: 'apps/app1/src/app/example',
filePath: 'apps/app1/src/example/example.component.ts',
name: 'example',
project: 'app1',
inlineScam: true,
export: true,
})
).not.toThrow();
});
it('should export the component', () => {
// ARRANGE
const tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
addProjectConfiguration(tree, 'lib1', {
projectType: 'library',
sourceRoot: 'libs/lib1/src',
root: 'libs/lib1',
});
tree.write('libs/lib1/src/index.ts', '');
// ACT
exportScam(tree, {
directory: 'libs/lib1/src/lib/example',
filePath: 'libs/lib1/src/lib/example/example.component.ts',
name: 'example',
project: 'lib1',
inlineScam: true,
export: true,
});
// ASSERT
const entryPointSource = tree.read(`libs/lib1/src/index.ts`, 'utf-8');
expect(entryPointSource).toMatchInlineSnapshot(
`"export * from "./lib/example/example.component";"`
);
});
it('should export the component and the module when "--inline-scam=false"', () => {
// ARRANGE
const tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
addProjectConfiguration(tree, 'lib1', {
projectType: 'library',
sourceRoot: 'libs/lib1/src',
root: 'libs/lib1',
});
tree.write('libs/lib1/src/index.ts', '');
// ACT
exportScam(tree, {
directory: 'libs/lib1/src/lib/example',
filePath: 'libs/lib1/src/lib/example/example.component.ts',
name: 'example',
project: 'lib1',
inlineScam: false,
export: true,
});
// ASSERT
const entryPointSource = tree.read(`libs/lib1/src/index.ts`, 'utf-8');
expect(entryPointSource).toMatchInlineSnapshot(`
"export * from "./lib/example/example.component";
export * from "./lib/example/example.module";"
`);
});
it('should export the component from the secondary entrypoint', () => {
// ARRANGE
const tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
addProjectConfiguration(tree, 'lib1', {
projectType: 'library',
sourceRoot: 'libs/lib1/src',
root: 'libs/lib1',
});
tree.write('libs/lib1/src/index.ts', '');
tree.write('libs/lib1/feature/src/index.ts', '');
writeJson(tree, 'libs/lib1/feature/ng-package.json', {
lib: { entryFile: './src/index.ts' },
});
// ACT
exportScam(tree, {
directory: 'libs/lib1/feature/src/lib/example',
filePath: 'libs/lib1/feature/src/lib/example/example.component.ts',
name: 'example',
project: 'lib1',
inlineScam: true,
export: true,
});
// ASSERT
const entryPointSource = tree.read(
`libs/lib1/feature/src/index.ts`,
'utf-8'
);
expect(entryPointSource).toMatchInlineSnapshot(
`"export * from "./lib/example/example.component";"`
);
});
});