dependency-cruiser
Version:
Validate and visualize javascript dependencies. With your rules. ES6, CommonJS, AMD
83 lines (77 loc) • 2.43 kB
JavaScript
"use strict";
const expect = require('chai').expect;
const optionNormalizer = require('../../src/cli/optionNormalizer');
describe("optionNormalizer", () => {
it("normalizes empty options to no exclude, stdout, json and 'cjs, amd, es6'", () => {
expect(
optionNormalizer({})
).to.deep.equal(
{
exclude: "",
outputTo: "-",
outputType: "json",
system: ["amd", "cjs", "es6"],
moduleSystems: ["amd", "cjs", "es6"],
validate: false
}
);
});
it("normalizes --system cjs,es6 to [cjs, es6]", () => {
expect(
optionNormalizer({system: "cjs,es6"})
).to.deep.equal(
{
exclude: "",
outputTo: "-",
outputType: "json",
system: "cjs,es6",
moduleSystems: ["cjs", "es6"],
validate: false
}
);
});
it("normalizes --system {} to [amd, cjs, es6]", () => {
expect(
optionNormalizer({system: {}})
).to.deep.equal(
{
exclude: "",
outputTo: "-",
outputType: "json",
system: {},
moduleSystems: ["amd", "cjs", "es6"],
validate: false
}
);
});
it("-v parameter assumes .dependency-cruiser for rules", () => {
expect(
optionNormalizer({validate: true})
).to.deep.equal(
{
exclude: "",
outputTo: "-",
outputType: "json",
system: ["amd", "cjs", "es6"],
moduleSystems: ["amd", "cjs", "es6"],
rulesFile: ".dependency-cruiser.json",
validate: true
}
);
});
it("-v with parameter uses that parameter as rules file", () => {
expect(
optionNormalizer({validate: "./fixtures/rules.empty.json"})
).to.deep.equal(
{
exclude: "",
outputTo: "-",
outputType: "json",
system: ["amd", "cjs", "es6"],
moduleSystems: ["amd", "cjs", "es6"],
rulesFile: "./fixtures/rules.empty.json",
validate: true
}
);
});
});