/
implict-project-dependencies.spec.ts
74 lines (66 loc) · 1.78 KB
/
implict-project-dependencies.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
69
70
71
72
73
74
import { ProjectGraphProcessorContext } from 'nx/src/shared/project-graph';
import { ProjectGraphBuilder } from '../project-graph-builder';
import { buildImplicitProjectDependencies } from './implicit-project-dependencies';
jest.mock('fs', () => require('memfs').fs);
jest.mock('nx/src/utils/app-root', () => ({
appRootPath: '/root',
workspaceRoot: '/root',
}));
describe('explicit project dependencies', () => {
let ctx: ProjectGraphProcessorContext;
it(`should add implicit deps`, () => {
const builder = new ProjectGraphBuilder();
builder.addNode({
name: 'proj1',
data: { files: [] },
} as any);
builder.addNode({
name: 'proj2',
data: { files: [] },
} as any);
buildImplicitProjectDependencies(
{
filesToProcess: {},
fileMap: {},
workspace: {
projects: {
proj1: { implicitDependencies: ['proj2'] },
},
},
} as any,
builder
);
expect(builder.getUpdatedProjectGraph().dependencies['proj1']).toEqual([
{
source: 'proj1',
target: 'proj2',
type: 'implicit',
},
]);
});
it(`should remove implicit deps`, () => {
const builder = new ProjectGraphBuilder();
builder.addNode({
name: 'proj1',
data: { files: [] },
} as any);
builder.addNode({
name: 'proj2',
data: { files: [] },
} as any);
builder.addImplicitDependency('proj1', 'proj2');
buildImplicitProjectDependencies(
{
filesToProcess: {},
fileMap: {},
workspace: {
projects: {
proj1: { implicitDependencies: ['!proj2'] },
},
},
} as any,
builder
);
expect(builder.getUpdatedProjectGraph().dependencies['proj1']).toEqual([]);
});
});