-
Notifications
You must be signed in to change notification settings - Fork 2.2k
/
check-destination.spec.ts
68 lines (59 loc) · 1.86 KB
/
check-destination.spec.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import {
ProjectConfiguration,
readProjectConfiguration,
Tree,
} from '@nrwl/devkit';
import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing';
import { Schema } from '../schema';
import { checkDestination } from './check-destination';
import { libraryGenerator } from '../../library/library';
describe('checkDestination', () => {
let tree: Tree;
let projectConfig: ProjectConfiguration;
beforeEach(async () => {
tree = createTreeWithEmptyWorkspace();
await libraryGenerator(tree, { name: 'my-lib', standaloneConfig: false });
projectConfig = readProjectConfiguration(tree, 'my-lib');
});
it('should throw an error if the path is not explicit', async () => {
const schema: Schema = {
projectName: 'my-lib',
destination: '../apps/not-an-app',
importPath: undefined,
updateImportPath: true,
};
expect(() => {
checkDestination(tree, schema, projectConfig);
}).toThrow(
`Invalid destination: [${schema.destination}] - Please specify explicit path.`
);
});
it('should throw an error if the path already exists', async () => {
await libraryGenerator(tree, {
name: 'my-other-lib',
standaloneConfig: false,
});
const schema: Schema = {
projectName: 'my-lib',
destination: 'my-other-lib',
importPath: undefined,
updateImportPath: true,
};
expect(() => {
checkDestination(tree, schema, projectConfig);
}).toThrow(
`Invalid destination: [${schema.destination}] - Path is not empty.`
);
});
it('should NOT throw an error if the path is available', async () => {
const schema: Schema = {
projectName: 'my-lib',
destination: 'my-other-lib',
importPath: undefined,
updateImportPath: true,
};
expect(() => {
checkDestination(tree, schema, projectConfig);
}).not.toThrow();
});
});