mirror of
https://github.com/DavidAnson/markdownlint.git
synced 2025-09-22 05:40:48 +02:00
Update code for new behavior of ESLint rule n/prefer-promises/fs.
This commit is contained in:
parent
8c8841e7b1
commit
523eeee3bb
3 changed files with 77 additions and 82 deletions
|
@ -412,19 +412,16 @@ test("enableTagMixedCase", (t) => new Promise((resolve) => {
|
|||
});
|
||||
}));
|
||||
|
||||
test("styleFiles", (t) => new Promise((resolve) => {
|
||||
t.plan(9);
|
||||
fs.readdir("./style", function readdir(err, files) {
|
||||
t.falsy(err);
|
||||
for (const file of files) {
|
||||
t.truthy(require(path.join("../style", file)), "Unable to load/parse.");
|
||||
const exportValue = `./style/${file}`;
|
||||
const exportKey = exportValue.replace(/\.json$/, "");
|
||||
t.is(packageExports[exportKey], exportValue);
|
||||
}
|
||||
resolve();
|
||||
});
|
||||
}));
|
||||
test("styleFiles", async(t) => {
|
||||
t.plan(8);
|
||||
const files = await fs.promises.readdir("./style");
|
||||
for (const file of files) {
|
||||
t.truthy(require(path.join("../style", file)), "Unable to load/parse.");
|
||||
const exportValue = `./style/${file}`;
|
||||
const exportKey = exportValue.replace(/\.json$/, "");
|
||||
t.is(packageExports[exportKey], exportValue);
|
||||
}
|
||||
});
|
||||
|
||||
test("styleAll", (t) => new Promise((resolve) => {
|
||||
t.plan(2);
|
||||
|
@ -839,8 +836,8 @@ test("customFileSystemAsync", (t) => new Promise((resolve) => {
|
|||
});
|
||||
}));
|
||||
|
||||
test("readme", (t) => new Promise((resolve) => {
|
||||
t.plan(125);
|
||||
test("readme", async(t) => {
|
||||
t.plan(124);
|
||||
const tagToRules = {};
|
||||
for (const rule of rules) {
|
||||
for (const tag of rule.tags) {
|
||||
|
@ -849,74 +846,70 @@ test("readme", (t) => new Promise((resolve) => {
|
|||
tagToRules[tag] = tagRules;
|
||||
}
|
||||
}
|
||||
fs.readFile("README.md", "utf8",
|
||||
function readFile(err, contents) {
|
||||
t.falsy(err);
|
||||
const rulesLeft = [ ...rules ];
|
||||
let seenRelated = false;
|
||||
let seenReferences = false;
|
||||
let seenRules = false;
|
||||
let inRules = false;
|
||||
let seenTags = false;
|
||||
let inTags = false;
|
||||
// @ts-ignore
|
||||
for (const token of md.parse(contents, {})) {
|
||||
if (
|
||||
(token.type === "bullet_list_open") &&
|
||||
(token.level === 0)
|
||||
) {
|
||||
if (!seenRelated) {
|
||||
seenRelated = true;
|
||||
} else if (!seenReferences) {
|
||||
seenReferences = true;
|
||||
} else if (!seenRules) {
|
||||
seenRules = true;
|
||||
inRules = true;
|
||||
} else if (!seenTags) {
|
||||
seenTags = true;
|
||||
inTags = true;
|
||||
}
|
||||
} else if (
|
||||
(token.type === "bullet_list_close") &&
|
||||
(token.level === 0)
|
||||
) {
|
||||
inRules = false;
|
||||
inTags = false;
|
||||
} else if (token.type === "inline") {
|
||||
if (inRules) {
|
||||
const rule = rulesLeft.shift();
|
||||
t.truthy(rule,
|
||||
"Missing rule implementation for " + token.content + ".");
|
||||
if (rule) {
|
||||
const ruleName = rule.names[0];
|
||||
const ruleAliases = rule.names.slice(1);
|
||||
let expected = "**[" + ruleName + "](doc/" +
|
||||
ruleName.toLowerCase() + ".md)** *" +
|
||||
ruleAliases.join("/") + "* - " + rule.description;
|
||||
if (deprecatedRuleNames.has(ruleName)) {
|
||||
expected = "~~" + expected + "~~";
|
||||
}
|
||||
t.is(token.content, expected, "Rule mismatch.");
|
||||
}
|
||||
} else if (inTags) {
|
||||
const parts =
|
||||
token.content.replace(/[`*]/g, "").split(/ - |, |,\n/);
|
||||
const tag = parts.shift();
|
||||
t.deepEqual(parts, tagToRules[tag] || [],
|
||||
"Rule mismatch for tag " + tag + ".");
|
||||
delete tagToRules[tag];
|
||||
}
|
||||
}
|
||||
const contents = await fs.promises.readFile("README.md", "utf8");
|
||||
const rulesLeft = [ ...rules ];
|
||||
let seenRelated = false;
|
||||
let seenReferences = false;
|
||||
let seenRules = false;
|
||||
let inRules = false;
|
||||
let seenTags = false;
|
||||
let inTags = false;
|
||||
// @ts-ignore
|
||||
for (const token of md.parse(contents, {})) {
|
||||
if (
|
||||
(token.type === "bullet_list_open") &&
|
||||
(token.level === 0)
|
||||
) {
|
||||
if (!seenRelated) {
|
||||
seenRelated = true;
|
||||
} else if (!seenReferences) {
|
||||
seenReferences = true;
|
||||
} else if (!seenRules) {
|
||||
seenRules = true;
|
||||
inRules = true;
|
||||
} else if (!seenTags) {
|
||||
seenTags = true;
|
||||
inTags = true;
|
||||
}
|
||||
const ruleLeft = rulesLeft.shift();
|
||||
t.true(!ruleLeft,
|
||||
"Missing rule documentation for " +
|
||||
(ruleLeft || "[NO RULE]").toString() + ".");
|
||||
const tagLeft = Object.keys(tagToRules).shift();
|
||||
t.true(!tagLeft, "Undocumented tag " + tagLeft + ".");
|
||||
resolve();
|
||||
});
|
||||
}));
|
||||
} else if (
|
||||
(token.type === "bullet_list_close") &&
|
||||
(token.level === 0)
|
||||
) {
|
||||
inRules = false;
|
||||
inTags = false;
|
||||
} else if (token.type === "inline") {
|
||||
if (inRules) {
|
||||
const rule = rulesLeft.shift();
|
||||
t.truthy(rule,
|
||||
"Missing rule implementation for " + token.content + ".");
|
||||
if (rule) {
|
||||
const ruleName = rule.names[0];
|
||||
const ruleAliases = rule.names.slice(1);
|
||||
let expected = "**[" + ruleName + "](doc/" +
|
||||
ruleName.toLowerCase() + ".md)** *" +
|
||||
ruleAliases.join("/") + "* - " + rule.description;
|
||||
if (deprecatedRuleNames.has(ruleName)) {
|
||||
expected = "~~" + expected + "~~";
|
||||
}
|
||||
t.is(token.content, expected, "Rule mismatch.");
|
||||
}
|
||||
} else if (inTags) {
|
||||
const parts =
|
||||
token.content.replace(/[`*]/g, "").split(/ - |, |,\n/);
|
||||
const tag = parts.shift();
|
||||
t.deepEqual(parts, tagToRules[tag] || [],
|
||||
"Rule mismatch for tag " + tag + ".");
|
||||
delete tagToRules[tag];
|
||||
}
|
||||
}
|
||||
}
|
||||
const ruleLeft = rulesLeft.shift();
|
||||
t.true(!ruleLeft,
|
||||
"Missing rule documentation for " +
|
||||
(ruleLeft || "[NO RULE]").toString() + ".");
|
||||
const tagLeft = Object.keys(tagToRules).shift();
|
||||
t.true(!tagLeft, "Undocumented tag " + tagLeft + ".");
|
||||
});
|
||||
|
||||
test("validateJsonUsingConfigSchemaStrict", (t) => {
|
||||
t.plan(159);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue