dependency-cruiser
Version:
Visualize and validate javascript dependencies. With your rules. ES6, CommonJS, AMD
61 lines (55 loc) • 3.55 kB
JavaScript
"use strict";
const expect = require('chai').expect;
const render = require('../src/report/dotReporter').render;
const deps = require('./fixtures/cjs-no-dependency-valid.json');
const elFixture = `digraph "dependency-cruiser output"{
ordering=out
rankdir=LR
splines=true
overlap=false
nodesep=0.16
fontname="Helvetica"
fontsize="9"
compound=true
node [shape=box style="rounded, filled" fillcolor="#ffffcc" height=0.2 fontname=Helvetica fontsize=9]
edge [color=black arrowhead=normal fontname="Helvetica" fontsize="9"]
subgraph "cluster_/node_modules" {label="node_modules" style="rounded" subgraph "cluster_/node_modules/somemodule" {label="somemodule" style="rounded" subgraph "cluster_/node_modules/somemodule/node_modules" {label="node_modules" style="rounded" subgraph "cluster_/node_modules/somemodule/node_modules/someothermodule" {label="someothermodule" style="rounded" "node_modules/somemodule/node_modules/someothermodule/main.js" [label="main.js"] } } } }
subgraph "cluster_/node_modules" {label="node_modules" style="rounded" subgraph "cluster_/node_modules/somemodule" {label="somemodule" style="rounded" subgraph "cluster_/node_modules/somemodule/src" {label="src" style="rounded" "node_modules/somemodule/src/moar-javascript.js" [label="moar-javascript.js"] } } }
subgraph "cluster_/node_modules" {label="node_modules" style="rounded" subgraph "cluster_/node_modules/somemodule" {label="somemodule" style="rounded" subgraph "cluster_/node_modules/somemodule/src" {label="src" style="rounded" "node_modules/somemodule/src/somemodule.js" [label="somemodule.js"] } } }
"one_only_one.js"
"one_only_two.js"
"root_one.js"
"root_two.js"
"shared.js"
subgraph "cluster_/sub" {label="sub" style="rounded" "sub/depindir.js" [label="depindir.js"] }
subgraph "cluster_/sub" {label="sub" style="rounded" "sub/dir.js" [label="dir.js"] }
"two_only_one.js"
"node_modules/somemodule/src/somemodule.js" -> "node_modules/somemodule/src/moar-javascript.js" [color="red" penwidth=2.0]
"node_modules/somemodule/src/somemodule.js" -> "node_modules/somemodule/node_modules/someothermodule/main.js" [color="red" penwidth=2.0]
"one_only_one.js" -> "path" [color="red" penwidth=2.0]
"one_only_two.js" -> "path" [color="red" penwidth=2.0]
"root_one.js" -> "one_only_one.js" [color="red" penwidth=2.0]
"root_one.js" -> "one_only_two.js" [color="red" penwidth=2.0]
"root_one.js" -> "shared.js" [color="red" penwidth=2.0]
"root_one.js" -> "sub/dir.js" [color="red" penwidth=2.0]
"root_one.js" -> "fs" [color="red" penwidth=2.0]
"root_one.js" -> "node_modules/somemodule/src/somemodule.js" [color="red" penwidth=2.0]
"root_two.js" -> "shared.js" [color="red" penwidth=2.0]
"root_two.js" -> "somedata.json" [color="red" penwidth=2.0]
"root_two.js" -> "two_only_one.js" [color="red" penwidth=2.0]
"root_two.js" -> "http" [color="red" penwidth=2.0]
"shared.js" -> "path" [color="red" penwidth=2.0]
"sub/depindir.js" -> "path" [color="red" penwidth=2.0]
"sub/dir.js" -> "sub/depindir.js" [color="red" penwidth=2.0]
"sub/dir.js" -> "path" [color="red" penwidth=2.0]
"two_only_one.js" -> "sub/dir.js" [color="red" penwidth=2.0]
}
`;
describe("dot reporter", () => {
it("renders a dot - modules in the root don't come in a cluster", () => {
expect(render(deps)).to.deep.equal(elFixture);
// console.log(render(deps));
// expect(1).to.equal(1);
});
});
/* eslint max-len: 0 */