UNPKG

@yolkai/nx-workspace

Version:

Extensible Dev Tools for Monorepos

67 lines (66 loc) 2.88 kB
"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 }; }