codacy-seed
Version:
Library to create Codacy Tools in Typescript
185 lines • 6.21 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const assert_1 = require("assert");
const chai_1 = __importDefault(require("chai"));
const fileUtils_1 = require("../fileUtils");
describe("fileUtils", () => {
describe("parseCodacyrcFile", () => {
it("should parse a codacyrc file", () => {
const codacyrcFileContent = `{
"files" : ["foo/bar/baz.js", "foo2/bar/baz.php"],
"tools":[
{
"name":"jshint",
"patterns":[
{
"patternId":"latedef",
"parameters":[
{
"name":"latedef",
"value":"vars"
}
]
}
]
}
]
}`;
const parsed = (0, fileUtils_1.parseCodacyrcFile)(codacyrcFileContent);
const expected = {
files: ["foo/bar/baz.js", "foo2/bar/baz.php"],
tools: [
{
name: "jshint",
patterns: [
{
patternId: "latedef",
parameters: [
{
name: "latedef",
value: "vars"
}
]
}
]
}
]
};
(0, assert_1.deepStrictEqual)(parsed, expected);
});
it("should parse a codacyrc file with no files", () => {
const codacyrcFileContent = `{
"tools":[
{
"name":"jshint",
"patterns":[
{
"patternId":"latedef",
"parameters":[
{
"name":"latedef",
"value":"vars"
}
]
}
]
}
]
}`;
const parsed = (0, fileUtils_1.parseCodacyrcFile)(codacyrcFileContent);
const expected = {
tools: [
{
name: "jshint",
patterns: [
{
patternId: "latedef",
parameters: [
{
name: "latedef",
value: "vars"
}
]
}
]
}
]
};
(0, assert_1.deepStrictEqual)(parsed, expected);
});
it("should parse a codacyrc file with no tools", () => {
const codacyrcFileContent = `{
"files" : ["foo/bar/baz.js", "foo2/bar/baz.php"]
}`;
const parsed = (0, fileUtils_1.parseCodacyrcFile)(codacyrcFileContent);
const expected = {
files: ["foo/bar/baz.js", "foo2/bar/baz.php"]
};
(0, assert_1.deepStrictEqual)(parsed, expected);
});
it("should parse codacyrc files with no parameters in pattern", () => {
var _a, _b;
const codacyrcFileContent = `{
"files" : [],
"tools":[
{
"name": "",
"patterns":[
{
"patternId":"latedef"
}
]
}
]
}`;
const parsed = (0, fileUtils_1.parseCodacyrcFile)(codacyrcFileContent);
const parameters = (_b = (_a = parsed.tools) === null || _a === void 0 ? void 0 : _a[0].patterns) === null || _b === void 0 ? void 0 : _b[0].parameters;
(0, assert_1.deepStrictEqual)(parameters, []);
const expected = {
files: [],
tools: [
{
name: "",
patterns: [
{
patternId: "latedef",
parameters: []
}
]
}
]
};
(0, assert_1.deepStrictEqual)(parsed, expected);
});
it("should fail with an invalid codacyrc file", () => {
const wrongCodacyrcFileContent = `{`;
chai_1.default.expect(() => (0, fileUtils_1.parseCodacyrcFile)(wrongCodacyrcFileContent)).to.throw();
});
});
describe("parseSpecification", () => {
it("should parse specifications with no parameters in patterns", () => {
const specificationContent = `{
"name": "tool",
"version": "10",
"patterns": [
{
"patternId": "a-patternId",
"level": "Warning",
"category": "CodeStyle"
}
]
}`;
const result = (0, fileUtils_1.parseSpecification)(specificationContent);
const expected = {
name: "tool",
version: "10",
patterns: [
{
patternId: "a-patternId",
level: "Warning",
category: "CodeStyle",
parameters: [],
enabled: false
}
]
};
(0, assert_1.deepStrictEqual)(result, expected);
});
});
it("should parse a codacyrc file with options", () => {
const codacyrcFileContent = `{
"options": {
"language": "typescript"
}
}`;
const parsed = (0, fileUtils_1.parseCodacyrcFile)(codacyrcFileContent);
const expected = {
options: { language: "typescript" }
};
(0, assert_1.deepStrictEqual)(parsed, expected);
});
});
//# sourceMappingURL=fileUtils.spec.js.map