lint - bhsd-harry/wikiparser-node GitHub Wiki
This is an internal document. For visitors, you can now go back to the home page.
// isFostered (Node.js)
var {isFostered} = require("../util/lint");
var check = text => isFostered(Parser.parse(text));
assert.strictEqual(check(" <!-- --> "), false);
assert.strictEqual(check("<!-- --> !"), false);
assert.strictEqual(check("<!-- --> {{!}}"), false);
assert.strictEqual(check("<!-- --> <td>"), false);
assert.strictEqual(check("<!-- --> {{{|!}}}"), false);
assert.strictEqual(check("<!-- --> {{{|x}}}"), 2);
assert.strictEqual(check("<!-- --> {{{|{{x}}}}}"), 1);
assert.strictEqual(check("{{#if:||!}}"), false);
assert.strictEqual(check("{{#if:|{{x}}|x}}"), 2);
assert.strictEqual(check("{{#if:|{{x}}|!}}"), 1);
assert.strictEqual(check("{{x}}"), 1);
assert.strictEqual(check("{{#invoke:x|y}}"), 1);
assert.strictEqual(check("x"), 2);// getEndPos (Node.js)
var {getEndPos} = require("../util/lint");
assert.deepStrictEqual(
getEndPos(1, 1, 1, 1),
{line: 1, character: 2},
);
assert.deepStrictEqual(
getEndPos(1, 1, 2, 1),
{line: 2, character: 1},
);// generateForChild (Node.js)
var {generateForChild} = require("../util/lint"),
{Token} = require("../src/index");
var root = new Token(),
child = new Token("a\nb");
root.append(child);
assert.deepStrictEqual(
generateForChild(child, {start: 0}, "rule", "msg"),
{
rule: "rule",
message: "msg",
severity: "error",
startIndex: 0,
endIndex: 3,
startLine: 0,
startCol: 0,
endLine: 1,
endCol: 1,
},
);// generateForSelf (Node.js)
var {generateForSelf} = require("../util/lint"),
{Token} = require("../src/index");
var root = new Token("a\nb");
assert.deepStrictEqual(
generateForSelf(root, {start: 0}, "rule", "msg"),
{
rule: "rule",
message: "msg",
severity: "error",
startIndex: 0,
endIndex: 3,
startLine: 0,
startCol: 0,
endLine: 1,
endCol: 1,
},
);// fixBy (Node.js)
var {fixBy} = require("../util/lint");
var e = {
startIndex: 0,
endIndex: 1,
};
assert.deepStrictEqual(
fixBy(e, "left-bracket", "[", 1),
{
desc: "opening bracket",
range: [1, 1],
text: "[",
},
);// fixByInsert (Node.js)
var {fixByInsert} = require("../util/lint");
assert.deepStrictEqual(
fixByInsert(1, "left-bracket", "["),
{
desc: "opening bracket",
range: [1, 1],
text: "[",
},
);// fixByRemove (Node.js)
var {fixByRemove} = require("../util/lint");
var e = {
startIndex: 0,
endIndex: 1,
};
assert.deepStrictEqual(
fixByRemove(e, 1, "["),
{
desc: "remove",
range: [1, 1],
text: "[",
},
);
assert.deepStrictEqual(
fixByRemove(1, 1, "["),
{
desc: "remove",
range: [1, 2],
text: "[",
},
);// fixByDecode (Node.js)
var {fixByDecode} = require("../util/lint");
var e = {
startIndex: 0,
endIndex: 3,
},
link = Parser.parse("%25");
assert.deepStrictEqual(
fixByDecode(e, link),
{
desc: "decode",
range: [0, 3],
text: "%",
},
);// fixByClose (Node.js)
var {fixByClose} = require("../util/lint");
assert.deepStrictEqual(
fixByClose(1, "[", -1),
{
desc: "close",
range: [0, 1],
text: "[",
},
);// fixByOpen (Node.js)
var {fixByOpen} = require("../util/lint");
assert.deepStrictEqual(
fixByOpen(1),
{
desc: "open",
range: [2, 3],
text: "",
},
);// fixByComment (Node.js)
var {fixByComment} = require("../util/lint");
var e = {
startIndex: 0,
endIndex: 1,
};
assert.deepStrictEqual(
fixByComment(e, "["),
{
desc: "comment",
range: [0, 1],
text: "<!--[-->",
},
);// fixByUpper (Node.js)
var {fixByUpper} = require("../util/lint");
var e = {
startIndex: 0,
endIndex: 1,
};
assert.deepStrictEqual(
fixByUpper(e, "a"),
{
desc: "uppercase",
range: [0, 1],
text: "A",
},
);// fixBySpace (Node.js)
var {fixBySpace} = require("../util/lint");
assert.deepStrictEqual(
fixBySpace(1, 1),
{
desc: "whitespace",
range: [1, 2],
text: " ",
},
);// fixByEscape (Node.js)
var {fixByEscape} = require("../util/lint");
assert.deepStrictEqual(
fixByEscape(1, "[", 2),
{
desc: "escape",
range: [1, 3],
text: "[[",
},
);// fixByPipe (Node.js)
var {fixByPipe} = require("../util/lint");
assert.deepStrictEqual(
fixByPipe(1, "|"),
{
desc: "escape",
range: [1, 2],
text: "|",
},
);// cache (main)
var {cache} = require("../util/lint");
var store1,
store2,
counter = 0,
compute = () => counter++,
f = () => cache(store1, compute, value => {
store1 = value;
}),
g = () => cache(store2, compute, value => {
store2 = value;
}, true);
Parser.viewOnly = true;
assert.strictEqual(f(), 0);
assert.strictEqual(f(), 0);
Parser.viewOnly = false;
assert.strictEqual(f(), 1);
assert.strictEqual(g(), 2);
assert.strictEqual(g(), 2);// provideValues (Node.js)
var {provideValues} = require("../util/lint");
assert.deepStrictEqual(
provideValues("ol", "type"),
["1", "a", "A", "i", "I"],
);
assert.deepStrictEqual(
provideValues("th", "scope"),
["row", "col", "rowgroup", "colgroup"],
);
assert.deepStrictEqual(
provideValues("p", "dir"),
["ltr", "rtl", "auto"],
);
assert.deepStrictEqual(
provideValues("p", "aria-hidden"),
["true", "false"],
);
assert.deepStrictEqual(
provideValues("p", "id"),
[],
);