diff --git a/test/break-all-the-rules.md b/test/break-all-the-rules.md new file mode 100644 index 00000000..00bfffe3 --- /dev/null +++ b/test/break-all-the-rules.md @@ -0,0 +1,51 @@ +## Header 1 {MD002} + +#### Header 2 {MD001} + +# Header 3 {MD003} # + +* list + + list {MD004} {MD006} {MD007} {MD030} + +* list + * list {MD007} + * list {MD005} + + {MD009} {MD010} + +(name)[link] {MD011} + + +{MD012:18} + +long line long line long line long line long line long line long line long line long line {MD013} + + $ dollar {MD014} + +#Header 4 {MD018} + +# Header 5 {MD019} + +#Header 6 {MD020} # + # Header 7 {MD021} {MD022} {MD023} {MD003} # + +# Header 8 + +# Header 8 + +{MD024:34} + +Note: Can not break MD025 and MD002 in the same file + +# Header 9 {MD026}. + +> {MD027} + +> {MD028:43} + +1. list +2. list {MD029} + +``` +``` {MD031} +* list {MD032} diff --git a/test/markdownlint-test.js b/test/markdownlint-test.js index 955bd37d..529408d2 100644 --- a/test/markdownlint-test.js +++ b/test/markdownlint-test.js @@ -44,7 +44,11 @@ function createTestForFile(file) { results[rule] = errors; } }); - return results; + var sortedResults = {}; + Object.keys(results).sort().forEach(function forKey(key) { + sortedResults[key] = results[key]; + }); + return sortedResults; }); Q.all([ actualPromise, expectedPromise ]) .then( @@ -276,6 +280,85 @@ module.exports.enableTag = function enableTag(test) { }); }; +module.exports.styleAll = function styleAll(test) { + test.expect(2); + var options = { + "files": [ "./test/break-all-the-rules.md" ], + "config": require("../style/all.json") + }; + markdownlint(options, function callback(err, actualResult) { + test.ifError(err); + var expectedResult = { + "./test/break-all-the-rules.md": { + "MD001": [ 3 ], + "MD002": [ 1 ], + "MD003": [ 5, 30 ], + "MD004": [ 8 ], + "MD005": [ 12 ], + "MD006": [ 8 ], + "MD007": [ 8, 11 ], + "MD009": [ 14 ], + "MD010": [ 14 ], + "MD011": [ 16 ], + "MD012": [ 18 ], + "MD013": [ 21 ], + "MD014": [ 23 ], + "MD018": [ 25 ], + "MD019": [ 27 ], + "MD020": [ 29 ], + "MD021": [ 30 ], + "MD022": [ 30 ], + "MD023": [ 30 ], + "MD024": [ 34 ], + "MD026": [ 40 ], + "MD027": [ 42 ], + "MD028": [ 43 ], + "MD029": [ 47 ], + "MD030": [ 8 ], + "MD031": [ 50 ], + "MD032": [ 51 ] + } + }; + test.deepEqual(actualResult, expectedResult, "Undetected issues."); + test.done(); + }); +}; + +module.exports.styleRelaxed = function styleRelaxed(test) { + test.expect(2); + var options = { + "files": [ "./test/break-all-the-rules.md" ], + "config": require("../style/relaxed.json") + }; + markdownlint(options, function callback(err, actualResult) { + test.ifError(err); + var expectedResult = { + "./test/break-all-the-rules.md": { + "MD001": [ 3 ], + "MD002": [ 1 ], + "MD003": [ 5, 30 ], + "MD004": [ 8 ], + "MD005": [ 12 ], + "MD011": [ 16 ], + "MD014": [ 23 ], + "MD018": [ 25 ], + "MD019": [ 27 ], + "MD020": [ 29 ], + "MD021": [ 30 ], + "MD022": [ 30 ], + "MD023": [ 30 ], + "MD024": [ 34 ], + "MD026": [ 40 ], + "MD029": [ 47 ], + "MD031": [ 50 ], + "MD032": [ 51 ] + } + }; + test.deepEqual(actualResult, expectedResult, "Undetected issues."); + test.done(); + }); +}; + module.exports.filesNotModified = function filesNotModified(test) { test.expect(2); var files = [