@yolkai/nx-workspace
Version:
67 lines (66 loc) • 2.88 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const project_graph_builder_1 = require("./project-graph-builder");
const project_graph_models_1 = require("./project-graph-models");
describe('ProjectGraphBuilder', () => {
it('should generate graph with nodes and dependencies', () => {
const builder = new project_graph_builder_1.ProjectGraphBuilder();
const myapp = createNode('myapp', 'app');
const libA = createNode('lib-a', 'lib');
const libB = createNode('lib-b', 'lib');
const libC = createNode('lib-c', 'lib');
const happyNrwl = createNode('happy-nrwl', 'npm');
builder.addNode(myapp);
builder.addNode(libA);
builder.addNode(libB);
builder.addNode(libC);
builder.addNode(libC); // Idempotency
builder.addNode(happyNrwl);
expect(() => {
builder.addDependency(project_graph_models_1.DependencyType.static, 'fake-1', 'fake-2');
}).toThrow();
builder.addDependency(project_graph_models_1.DependencyType.static, myapp.name, libA.name);
builder.addDependency(project_graph_models_1.DependencyType.static, myapp.name, libB.name);
builder.addDependency(project_graph_models_1.DependencyType.static, libB.name, libC.name);
builder.addDependency(project_graph_models_1.DependencyType.static, libB.name, libC.name); // Idempotency
builder.addDependency(project_graph_models_1.DependencyType.static, libB.name, libB.name);
builder.addDependency(project_graph_models_1.DependencyType.static, libC.name, happyNrwl.name);
const graph = builder.build();
expect(graph).toMatchObject({
nodes: {
[myapp.name]: myapp,
[libA.name]: libA,
[libB.name]: libB,
[libC.name]: libC,
[happyNrwl.name]: happyNrwl
},
dependencies: {
[myapp.name]: [
{
type: project_graph_models_1.DependencyType.static,
source: myapp.name,
target: libA.name
},
{ type: project_graph_models_1.DependencyType.static, source: myapp.name, target: libB.name }
],
[libB.name]: [
{ type: project_graph_models_1.DependencyType.static, source: libB.name, target: libC.name }
],
[libC.name]: [
{
type: project_graph_models_1.DependencyType.static,
source: libC.name,
target: happyNrwl.name
}
]
}
});
});
});
function createNode(name, type) {
return {
type,
name,
data: null
};
}