LintConfig - bhsd-harry/wikiparser-node GitHub Wiki
This is an internal document. For visitors, you can now go back to the home page.
// validateConfigValue
var {lintConfig: {rules}} = Parser;
rules.h1 = 0;
assert.strictEqual(rules.getSeverity("h1"), false);
rules.h1 = "off";
assert.strictEqual(rules.getSeverity("h1"), false);
rules.h1 = false;
assert.strictEqual(rules.getSeverity("h1"), false);
rules.h1 = 1;
assert.strictEqual(rules.getSeverity("h1"), "warning");
rules.h1 = "warning";
assert.strictEqual(rules.getSeverity("h1"), "warning");
rules.h1 = 2;
assert.strictEqual(rules.getSeverity("h1"), "error");
rules.h1 = "error";
assert.strictEqual(rules.getSeverity("h1"), "error");
rules.h1 = [1];
assert.strictEqual(rules.getSeverity("h1"), "warning");
rules.h1 = ["warning"];
assert.strictEqual(rules.getSeverity("h1"), "warning");
rules.h1 = [2, {}];
assert.strictEqual(rules.getSeverity("h1"), "error");
rules.h1 = ["error", {test: "off"}];
assert.strictEqual(rules.getSeverity("h1"), "error");
assert.strictEqual(rules.getSeverity("h1", "test"), false);// legacy config
Parser.lintConfig = {h1: 2};
assert.strictEqual(Parser.lintConfig.rules.getSeverity("h1"), "error");
assert.ok(Parser.lintConfig.computeEditInfo);
assert.ok(Parser.lintConfig.fix);
assert.ok(!Parser.lintConfig.ignoreDisables);
assert.strictEqual(Parser.lintConfig.configurationComment, "lint");// computeEditInfo
var error1 = {
rule: "no-ignored",
severity: "error",
message: "invalid conversion flag",
startLine: 0,
startCol: 2,
startIndex: 2,
endLine: 0,
endCol: 3,
endIndex: 3,
},
error2 = {
rule: "illegal-attr",
severity: "error",
message: "invalid attribute name",
startLine: 0,
startCol: 4,
startIndex: 4,
endLine: 0,
endCol: 8,
endIndex: 8,
};
assert.deepStrictEqual(
Parser.parse("-{a|}-").lint(),
Object.assign(
[
{
...error1,
fix: {
desc: "uppercase",
range: [2, 3],
text: "A",
},
},
],
{output: "-{A|}-"},
),
);
assert.deepStrictEqual(
Parser.parse("<br attr>").lint(),
[
{
...error2,
suggestions: [
{
desc: "remove",
range: [4, 8],
text: "",
},
],
},
],
);
Parser.lintConfig.computeEditInfo = false;
assert.deepStrictEqual(
Parser.parse("-{a|}-").lint(),
Object.assign([error1], {output: "-{A|}-"}),
);
assert.deepStrictEqual(
Parser.parse("<br attr>").lint(),
[error2],
);// fix
var error = {
rule: "unmatched-tag",
severity: "error",
message: "tag that is both closing and self-closing",
startLine: 0,
startCol: 0,
startIndex: 0,
endLine: 0,
endCol: 5,
endIndex: 5,
fix: {
desc: "open",
range: [1, 2],
text: "",
},
};
assert.deepStrictEqual(
Parser.parse("</br>").lint(),
Object.assign([error], {output: "<br>"}),
);
Parser.lintConfig.fix = false;
assert.deepStrictEqual(
Parser.parse("</br>").lint(),
[error],
);// ignoreDisables
var error = {
rule: "tag-like",
severity: "error",
message: 'lonely "<"',
startLine: 0,
startCol: 1,
startIndex: 1,
endLine: 0,
endCol: 3,
endIndex: 3,
suggestions: [
{
desc: "escape",
range: [1, 2],
text: "<",
},
],
};
assert.deepStrictEqual(
Parser.parse("a<b <!-- lint-disable-line -->").lint(),
[],
);
Parser.lintConfig.ignoreDisables = true;
assert.deepStrictEqual(
Parser.parse("a<b <!-- lint-disable-line -->").lint(),
[error],
);// configurationComment
var error = {
rule: "lonely-http",
severity: "warning",
message: 'lonely "http://"',
startLine: 0,
startCol: 0,
startIndex: 0,
endLine: 0,
endCol: 7,
endIndex: 7,
};
assert.deepStrictEqual(
Parser.parse("http:// <!-- wikilint-disable-line -->").lint(),
[error],
);
Parser.lintConfig.configurationComment = "wikilint";
assert.deepStrictEqual(
Parser.parse("http:// <!-- wikilint-disable-line -->").lint(),
[],
);